Difference between revisions of "Flata"
Line 1: | Line 1: | ||
− | [[File:Octahedron. | + | [[File:Octahedron.png|thumb|upright|]] |
'''FLATA''' is a toolset for the manipulation and the analysis of non-deterministic integer programs (also known as counter automata). The main functionalities of FLATA are: | '''FLATA''' is a toolset for the manipulation and the analysis of non-deterministic integer programs (also known as counter automata). The main functionalities of FLATA are: | ||
− | * '''reachability analysis''' of non-recursive programs | + | * '''reachability analysis''' of non-recursive programs - deciding if an error control state is reachable |
− | * '''termination analysis''' of non-recursive programs | + | * '''termination analysis''' of non-recursive programs - computation of termination preconditions |
* computation of '''summaries''' of recursive programs | * computation of '''summaries''' of recursive programs | ||
Line 22: | Line 22: | ||
* [http://yices.csl.sri.com/download.shtml YICES] has to be installed in your executable path | * [http://yices.csl.sri.com/download.shtml YICES] has to be installed in your executable path | ||
− | * [http:// | + | * [http://glpk-java.sourceforge.net/ GLPK Java] has to be installed in LD_LIBRARY_PATH (required for termination analysis only) |
+ | <!-- | ||
+ | * [http://antlr.org/download/antlr-3.2.jar ANTLR] and [http://www.fit.vutbr.cz/~ikonecny/flata/nts.jar NTS] has to be installed in your JAVA classpath | ||
+ | --> | ||
=== Run === | === Run === | ||
− | A good way to get started using FLATA is to go through | + | The input to the tool is a textual description of a counter automaton, essentially a control flow with edges labeled with arithmetic relations. A good way to get started using FLATA is to go through some of the examples (a subset of [[Main_Page | NTS]] benchmarks that FLATA can veriify) contained in the distribution and run FLATA as e.g.: |
− | + | ||
− | + | * reachability analysis <tt>./flata-reachability.sh benchmarks-reach/VHDL/synlifo.correct.nts</tt> | |
+ | * termination analysis | ||
+ | * summary computation <tt>./flata-reachability.sh benchmarks-recur/mccarthy.nts</tt> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
== Verification of Non-recursive Programs == | == Verification of Non-recursive Programs == | ||
Line 71: | Line 70: | ||
== Acknowledgements == | == Acknowledgements == | ||
+ | |||
This work was supported by the French national project ANR-09-SEGI-016 VERIDYC, by the Czech Science Foundation (projects P103/10/0306 and 102/09/H042), the Czech Ministry of Education (projects COST OC10009 and MSM 0021630528), and the internal FIT BUT grant FIT-S-10-1. | This work was supported by the French national project ANR-09-SEGI-016 VERIDYC, by the Czech Science Foundation (projects P103/10/0306 and 102/09/H042), the Czech Ministry of Education (projects COST OC10009 and MSM 0021630528), and the internal FIT BUT grant FIT-S-10-1. | ||
− | |||
− | |||
− | |||
− | |||
==References== | ==References== | ||
− | |||
− | |||
− | |||
<ref name="cav10">[seplogic.pdf Fast Acceleration of Ultimately Periodic Relations.] M. Bozga, R. Iosif, and F. Konecny. In Proc. of CAV'10, volume 6174 of LNCS, pages 227-242, 2010. Springer-Verlag. </ref> | <ref name="cav10">[seplogic.pdf Fast Acceleration of Ultimately Periodic Relations.] M. Bozga, R. Iosif, and F. Konecny. In Proc. of CAV'10, volume 6174 of LNCS, pages 227-242, 2010. Springer-Verlag. </ref> |
Revision as of 14:29, 4 February 2013
FLATA is a toolset for the manipulation and the analysis of non-deterministic integer programs (also known as counter automata). The main functionalities of FLATA are:
- reachability analysis of non-recursive programs - deciding if an error control state is reachable
- termination analysis of non-recursive programs - computation of termination preconditions
- computation of summaries of recursive programs
Contents
Running FLATA
Download
FLATA is a free software under LGPL license. The current distribution of FLATA is available here: flata.tgz
Prerequisites:
- JAVA version 1.6.0 or later
- YICES has to be installed in your executable path
- GLPK Java has to be installed in LD_LIBRARY_PATH (required for termination analysis only)
Run
The input to the tool is a textual description of a counter automaton, essentially a control flow with edges labeled with arithmetic relations. A good way to get started using FLATA is to go through some of the examples (a subset of NTS benchmarks that FLATA can veriify) contained in the distribution and run FLATA as e.g.:
- reachability analysis ./flata-reachability.sh benchmarks-reach/VHDL/synlifo.correct.nts
- termination analysis
- summary computation ./flata-reachability.sh benchmarks-recur/mccarthy.nts
Verification of Non-recursive Programs
Reachability Analysis
FLATA compu
The core of the analysis is an algorithm from CAV'10.
Termination Analysis
Verification of Recursive Programs
Documentation
The following papers are related to the FLATA project:
A white paper describing the functionalities of the toolset, and including a detailed description of the input syntax and options will be coming soon.
Contributors
- Marius Bozga (VERIMAG, Grenoble, France)
- Radu Iosif (VERIMAG, Grenoble, France)
- Filip Konecny (VERIMAG and Brno University of Technology)
- Tomas Vojnar (Brno University of Technology, Czech Republic)
Acknowledgements
This work was supported by the French national project ANR-09-SEGI-016 VERIDYC, by the Czech Science Foundation (projects P103/10/0306 and 102/09/H042), the Czech Ministry of Education (projects COST OC10009 and MSM 0021630528), and the internal FIT BUT grant FIT-S-10-1.
References
<ref name="cav10">[seplogic.pdf Fast Acceleration of Ultimately Periodic Relations.] M. Bozga, R. Iosif, and F. Konecny. In Proc. of CAV'10, volume 6174 of LNCS, pages 227-242, 2010. Springer-Verlag. </ref>
<ref name="tacas12">[seplogic.pdf Deciding Conditional Termination.] M. Bozga, R. Iosif, and F. Konecny. In Proc. of TACAS'12, volume 7214 of LNCS, pages 252-266, 2012. Springer-Verlag. </ref>
<ref name="tacas13">[seplogic.pdf Underapproximation of Procedure Summaries for Integer Programs.] P. Ganty, R. Iosif and F. Konecny. In Proc. of TACAS'13. To appear. </ref>
<ref name="fm12">[seplogic.pdf A Verification Toolkit for Numerical Transition Systems.] H. Hojjat, R. Iosif, F. Konecny, V. Kuncak, and P. Rummer. In Proc. of FM'12, volume 7436 of LNCS, pages 247-251, 2012. Springer-Verlag. </ref>
<ref name="tacas13">[seplogic.pdf Accelerating Interpolants.] P. Ganty, R. Iosif and F. Konecny. In Proc. of ATVA'12, volume 7561 of LNCS, pages 187-202, 2012. Springer-Verlag. </ref>
<references />