Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
inox
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
LARA
inox
Commits
816c06d6
Commit
816c06d6
authored
9 years ago
by
Manos Koukoutos
Browse files
Options
Downloads
Patches
Plain Diff
doc: Options review
parent
93088f64
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/options.rst
+54
-42
54 additions, 42 deletions
doc/options.rst
with
54 additions
and
42 deletions
doc/options.rst
+
54
−
42
View file @
816c06d6
.. _cmdlineoptions:
Command Line
============
Command Line
Options
============
========
Here is an overview of the command-line options that Leon recognizes:
Choosing
the
feature to use
Choosing
which Leon
feature to use
---------------------------
The first group of options determine which feature of Leon will be used.
They are mutually exclusive,
with ``--verify`` being the default
.
The first group of options determine which feature of Leon will be used.
These options are mutually exclusive. By default, ``--verify`` is chosen
.
* ``--eval``
...
...
@@ -61,11 +61,11 @@ These options are available by all Leon components:
* ``leon`` (The top-level component)
* ``options`` (
Print
s parsed
opti
on
s
)
* ``options`` (
Option
s parsed
by Le
on)
* ``repair`` (Program repair)
* ``solver`` (SMT solvers)
* ``solver`` (SMT solvers
and their wrappers
)
* ``synthesis`` (Program synthesis)
...
...
@@ -77,29 +77,33 @@ These options are available by all Leon components:
* ``verification`` (Verification)
* ``xlang`` (Transformation of
xl
ang into
p
ure
s
cala programs)
* ``xlang`` (Transformation of
XL
ang into
P
ure
S
cala programs)
* ``--functions=f1,f2,...``
Only consider functions f1, f2, ... . This applies to all functionalities
where Leon manipulates
the input in a per-function basis.
Only consider functions f1, f2, ... . This applies to all functionalities
where Leon manipulates
the input in a per-function basis.
* ``--solvers=s1,s2,...``
Use solvers s1, s2,... . If more than one solver is chosen, all chosen solvers will be used in parallel,
and the best result will be presented. By default, the ``fairz3`` solver is picked.
Some solvers are specialized to proving verification conditions and will have hard time finding
a counterexample in case of an invalid verification condition, some are specialized on finding
Use solvers s1, s2,... . If more than one solver is chosen, all chosen
solvers will be used in parallel, and the best result will be presented.
By default, the ``fairz3`` solver is picked.
Some solvers are specialized in proving verification conditions
and will have hard time finding a counterexample in case of an invalid
verification condition, whereas some are specialized in finding
counterexamples, and some provide a compromise between the two.
Also, some solvers do not as of now support higher-order functions.
Available solvers include:
* ``enum``
Uses enumeration-based techniques to discover counter
-
examples.
This solver
actually does not
invoke an SMT solver
and operates entirely on the level
of Leon trees.
Uses enumeration-based techniques to discover counterexamples.
This solver
does not actually
invoke an SMT solver
,
and operates entirely on the level
of Leon trees.
* ``fairz3``
...
...
@@ -107,29 +111,34 @@ These options are available by all Leon components:
* ``smt-cvc4``
CVC4 through SMT-LIB. An algorithm within Leon takes up the unfolding of recursive functions,
lambdas etc. To use this and the following CVC4-based solvers, you will need to have the ``cvc4``
executable in your system path (recommended is the latest unstable version).
CVC4 through SMT-LIB. An algorithm within Leon takes up the unfolding
of recursive functions, handling of lambdas etc. To use this or any
of the following CVC4-based solvers, you need to have the ``cvc4``
executable in your system path (the latest unstable version is recommended).
* ``smt-cvc4-cex``
CVC4 through SMT-LIB, in-solver finite-model-finding, for counter-examples only.
Currently, this solver does not handle higher-order functions.
* ``smt-cvc4-proof``
CVC4 through SMT-LIB, for proofs only. Inductive reasoning happens within the solver,
through use of the SMTLIB-2.5 standard.
CVC4 through SMT-LIB, for proofs only. Inductive reasoning happens
within the solver, through use of the SMTLIB-2.5 standard.
Currently, this solver does not handle higher-order functions.
* ``smt-z3``
Z3 through SMT-LIB. To use this or the next solver, you will need to have the ``z3``
executable in your program path (recommended: latest unstable version).
Inductive reasoning happens on the Leon side (similarly to ``smt-cvc4``).
Z3 through SMT-LIB. To use this or the next solver, you need to
have the ``z3`` executable in your program path (the latest stable version
is recommended). Inductive reasoning happens on the Leon side
(similarly to ``smt-cvc4``).
* ``smt-z3-q``
Z3 through SMT-LIB, but (recursive) functions are encoded with universal quantification,
and inductive reasoning happens within the solver.
Z3 through SMT-LIB, but (recursive) functions are encoded with universal
quantification, and inductive reasoning happens within the solver.
Currently, this solver does not handle higher-order functions.
* ``unrollz3``
...
...
@@ -142,7 +151,8 @@ These options are available by all Leon components:
* ``--timeout=t``
Set a timeout for attempting to prove a verification condition/ repair a function (in sec.)
Set a timeout for each attempt to prove one verification condition/
repair one function (in sec.)
Additional Options, by Component:
---------------------------------
...
...
@@ -167,19 +177,20 @@ Synthesis
* ``--cegis:opttimeout``
Consider a time-out of CE-search as untrusted solution
Consider a time-out of CE-search as untrusted solution
.
* ``--cegis:shrink``
Shrink non-det programs when tests pruning works well
Shrink non-det programs when tests pruning works well
.
* ``--cegis:vanuatoo``
Generate inputs using new korat-style generator
Generate inputs using new korat-style generator
.
* ``--costmodel=cm``
Use a specific cost model for this search
Use a specific cost model for this search.
Available: ``Naive``, ``WeightedBranches``
* ``--derivtrees``
...
...
@@ -189,34 +200,35 @@ Synthesis
* ``--manual=cmd``
Override Leon's automated search through the space of programs during synthesis.
When this option is chosen, the user gets to traverse the
space manually
and
choos
e how
deductive synthesis rules
are
instantiated.
Instead, the user can navigate the program
space manually
by
choos
ing which
deductive synthesis rules
is
instantiated
each time
.
The optional ``cmd`` argument is a series of natural numbers in the form ``n1,n1,...,nk``.
It represents the series of command indexes that the search should instantiate at the
beginning of the search. Useful for repeated search attempts.
The optional ``cmd`` argument is a series of natural numbers in the form
``n1,n1,...,nk``. It represents the series of command indexes that the search
should instantiate at the beginning of the search.
Useful for repeated search attempts.
Fair-z3 Solver
**************
* ``--checkmodels``
Double-check counter-examples with evaluator
Double-check counter-examples with evaluator
.
* ``--codegen``
Use compiled evaluator instead of interpreter
Use compiled evaluator instead of interpreter
.
* ``--evalground``
Use evaluator on functions applied to ground arguments
Use evaluator on functions applied to ground arguments
.
* ``--feelinglucky``
Use evaluator to find counter-examples early
Use evaluator to find counter-examples early
.
* ``--unrollcores``
Use unsat-cores to drive unrolling while remaining fair
Use unsat-cores to drive unrolling while remaining fair
.
CVC4-solver
***********
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment