Skip to content

Stevendeo/Pilat

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
				------
				README
				------

This package contains PILAT, the Frama-C plugin for generating loop invariant.
If you have no clue of what is Frama-C, please visit <http://frama-c.com>. 

This tool is based on the results of the article "Polynomial invariants by 
linear algebra", available at <https://arxiv.org/abs/1611.07726>.

Please consult file INSTALL for details about the installation procedure of
Frama-C.

				 -----
				 USAGE
				 -----

Pilat is a part of the Frama-C platform, i.e. it is one of its options.
To activate it, just type :

frama-c your_file.c -pilat

This will generate by default the "whole_program_annot.c" file with degree 
2 invariants written in ACSL, the specification language used by Frama-C plugins. 
You can select any degree by using the option -pilat-degree.

Most options of the form '-pilat-option-name' and without any parameter
have an opposite with the name '-pilat-no-option-name'.

Most options of the form '-option-name' and without any parameter
have an opposite with the name '-no-option-name'.

Options taking a string as argument should preferably be written
-option-name="argument".

***** LIST OF AVAILABLE OPTIONS:

-pilat              when on, generates polynomial invariants for each
                    solvable loop of the program (opposite option is
                    -no-pilat)
-pilat-const-name <str>  sets the name of the constants used in invariants
                    (default __PILAT__)
-pilat-degree <n>   sets the maximum degree of the invariants (default : 2)
-pilat-ev <n>       sets the maximal eigenvalue searched for when using
                    zarith
-pilat-optim-epsilon <str>  Tolerance of error during optimization (default
                    0.05)
-pilat-optim-iters <n>  sets the maximal number of iterations performed
                    during the optimisation (default 10)
-pilat-optim-start <n>  sets the initial value of k during the optimisation
                    (default 50)
-pilat-output <s>   specifies generated file name for annotated C code
-pilat-prove        when on, tries to prove already existing loop invariants
                    (opposite option is -pilat-no-prove)
-pilat-vars <x:y:...>  specifies which variables will be analyzed. 
-pilat-z            when on, uses zarith library. Recommended if searching
                    for integer relations but depreciated when searching for
                    floating point relations. (set by default, opposite
                    option is -pilat-no-z)

About

Invariant generator for polynomial loops

Resources

License

Stars

Watchers

Forks

Packages

No packages published