NBAC Invocation and options

NBAC Invocation and options

summary

Type nbacg -help, and get:

Usage: nbac <list of options> <filename>
List of options and suboptions:
 -----------------------------------------------------------------
 -gc "..."            : Memory Options
    Suboptions are
     -space <n> : sets Gc.space_overhead, default is 42
     -max <n>   : sets Gc.max_overhead, default is max_int
     -cudd <n>  : sets the BDDs ratio used/max to 1/2^n, default is n=20
     -polka <n> : sets the polyhedra ratio used/max to size/<n>Meg, default is 256Meg
 -----------------------------------------------------------------
 -cudd "..."          : CUDD Options
    Suboptions are
     -maxmem <n>   : sets the max. number of MB usable by CUDD
     -siftswap <n> : set the CUDD parameter SiftMaxSwap (default max_int)
 -----------------------------------------------------------------
 -num "..."           : Abstract numeric domain Options
    Suboptions are
     (+/-)strict  : enable/disable strict inequalities (default: enabled)
     -lib <str>   : numerical abstract domain
		    "polka": Polka (convex polyhedra) (default)
		    "oct": Oct (octagons)
 -----------------------------------------------------------------
 -polka "..."         : Polka numeric domain Options
    Suboptions are
     (+/-)widening_affine  : affine/linear mode for widening (default: affine)
 -----------------------------------------------------------------
 -bdd "..."           : BDDs Options
    Suboptions are
     -group <n>     : separating or mixing
		      Boolean variables and non-Boolean constraints ?
		      0: mixing (default)
		      1: separating (useful if many Boolean vars and few constraints)
     (+/-)parallel  : group parallel constraints ? (default: no)
     (+/-)reorder   : enable/disable reordering after parsing (default: enable)
     (+/-)reorder2  : enable/disable reordering after Boolean analysis (default: enable)
     (+/-)autoreorder
		    : enable/disable autoreordering (default: disable)
 -----------------------------------------------------------------
 -widening "..."      : Widening Options
    Suboptions are
     -depth <n>   : depth of recursive iterations (default 2, maybe only more)
     (+/-)param   : Parametrized by constraint ? (default no)
     (+/-)first   : enable/disable heuristic `widening first' (default: enable)
     -start <n>   : first widening step (default 1)
     -freq <n>    : widening every <n> steps (default 1)
     -descend <n> : number of narrowing steps (default 1)
 -----------------------------------------------------------------
 -postpre "..."       : Postpre Options
    Suboptions are
     -drelation    : maximum depth of relational computations (higher means more relational) (default: 0)
     -dassert <n>  : maximal depth of assert operators (default infinity)
     -dite <n>     : maximal depth of ite operators (default infinity)
     -dselect <n>  : function selection parameter (default 1)
     -dtimed <n>   : maximal depth of ite operators in timed transitions (default infinity)
     -gencof (0|1) : generalized cofactors, 0 means classical, 1 top-down
 -----------------------------------------------------------------
 -dot "<filename> .." : DOT Output
    Suboptions are
     (+/-)trans  : display the transition functions ? (default: yes)
     (+/-)cont   : display the derivatives constraints ? (default: yes)
     (+/-)all    : output all control structures, or only the one (default: final)
     -margin <n> : margin used for pretty-printing BDDs/MTBDDs
     -bdd <n>    : maximum size of BDDs/MTBDDs to be displayed
 -----------------------------------------------------------------
 -partition "..."     : Partition Options
    Suboptions are
     (+/-)source  : allow/forbid refinement of source locations (default: forbid)
     (+/-)sink    : allow/forbid refinement of sink locations (default: forbid)
     (+/-)init    : allow/forbid refinement of initial locations (default: forbid)
     (+/-)final   : allow/forbid refinement of final locations (default: forbid)
     -ratio <n>   : minimum size growth between two analysis (default 50     -maxloc <n>  : maximum number of locations (default infinity)
     -maxtime <n> : maximum time in secs (default infinity))
     -heuristic <n>
		  : refinement heuristic (default 0).
		    0: CFC ("Composante Fortement Connexes")
		    1: SCFC ("Sous-Composante Fortement Connexes")
		    2: MAXCUT
 -----------------------------------------------------------------
 -print "..."         : Printing Options
    Suboptions are
     (+/-)d       : database
     (+/-)p       : partition
     (+/-)a       : analysis
     (+/-)t       : analysis step
     (+/-)s       : analysis state
     (+/-)pp      : postpre
     (+/-)h       : refinement heuristics
     (+/-)r       : refinement
     -auto <n>    : maximum size of partition to be print
     -bdd <n>     : maximum size of BDDs/MTBDDs to be print
 -----------------------------------------------------------------
 -o "<filename> .."   : NBAC Output
    Suboptions are
     (+/-)red  : simplify formulae in the output ? (default: yes)
     (+/-)bdd  : use BDD or DNF form for formulae in the output ? (default: BDD)
     (+/-)prec
	       : use precise mode for guards in the output ? (default: false)
     (+/-)all  : output at each step (in the same file ? (default: false)
 -----------------------------------------------------------------
 -laure "<filename> .."
		      : Laure Gonnord's output
    Suboptions are
     (+/-)all  : output at each step (in numbered files) ? (default: false)
     (+/-)eliminput
	       : remove input ? (default: false)
 -----------------------------------------------------------------
 -analysis <n>        : type of analysis
			0: reachability (forward) analysis
			1: coreachability (backward) analysis
			2: slice (both) analysis (default)
 (+/-)boolonly        : Performs only discrete analysis (default: no)
 (+/-)success         : stops the analysis as soon as the property is proved ?
			(default: yes)
 (+/-)valid           : if property is proved, stops in a valid state
			for the automaton (default: no)
 -rc <filename>       : parse option file
 (+/-)printrc         : Print used options in option file format
 -help                : Display this list of options
 --help               : Display this list of options

If the requested analysis is reachability, the tool compute an overapproximation of the states reachable from the initial condition. If it is coreachability, it will compute an overapproximation of the states coreachable from the final condition (or the negation from the invariant condition). If it is slice, it will alternate both analysis and keep only states which are both reachable and coreachable. It is the more efficient analysis if the ultimate goal is to verify a property.

If the -o option is given, and if the resulting state-space after analysis is not empty, then the result of the analysis is outputed to the file.

Most useful options

  -analysis <n>        : type of analysis
			0: reachability (forward) analysis
			1: coreachability (backward) analysis
			2: slice (both) analysis (default)
 (+/-)boolonly        : Performs only discrete analysis (default: no)
 (+/-)success         : stops the analysis as soon as the property is proved ?
			(default: yes)
 (+/-)valid           : if property is proved, stops in a valid state
			for the automaton (default: no)
 -rc <filename>       : parse option file
 (+/-)printrc         : Print used options in option file format

Partition options

These options are related to partition refinement.

 -partition "..."     : Partition Options
    Suboptions are
     (+/-)source  : allow/forbid refinement of source locations (default: forbid)
     (+/-)sink    : allow/forbid refinement of sink locations (default: forbid)
     (+/-)init    : allow/forbid refinement of initial locations (default: forbid)
     (+/-)final   : allow/forbid refinement of final locations (default: forbid)
     -ratio <n>   : minimum size growth between two analysis (default 50     -maxloc <n>  : maximum number of locations (default infinity)
     -maxtime <n> : maximum time in secs (default infinity))
     -heuristic <n>
		  : refinement heuristic (default 0).
		    0: CFC ("Composante Fortement Connexes")
		    1: SCFC ("Sous-Composante Fortement Connexes")
		    2: MAXCUT

DOT options

 -dot "<filename> .." : DOT Output
    Suboptions are
     (+/-)trans  : display the transition functions ? (default: yes)
     (+/-)cont   : display the derivatives constraints ? (default: yes)
     (+/-)all    : output all control structures, or only the one (default: final)
     -margin <n> : margin used for pretty-printing BDDs/MTBDDs
     -bdd <n>    : maximum size of BDDs/MTBDDs to be displayed

Postpre options

These options are related to the method used for computing (approximated) post- and pre- conditions. They allow to tune the tradeoff between efficiency and precision. Their meaning is explained in [8].

For medium/big examples, use

-postpre "-dassert 4 -dite 4 -dtimed 3"

4 can be replaced by 3, 5, .... The worst-case complexity is exponential in this number.

You can also use -postpre "-dselect 2" to improve the precision.

 -postpre "..."       : Postpre Options
    Suboptions are
     -drelation    : maximum depth of relational computations (higher means more relational) (default: 0)
     -dassert <n>  : maximal depth of assert operators (default infinity)
     -dite <n>     : maximal depth of ite operators (default infinity)
     -dselect <n>  : function selection parameter (default 1)
     -dtimed <n>   : maximal depth of ite operators in timed transitions (default infinity)

Widening options

These also influence the precision/efficiency tradeoff.

 -widening "..."      : Widening Options
    Suboptions are
     -depth <n>   : depth of recursive iterations (default 2, maybe only more)
     (+/-)param   : Parametrized by constraint ? (default no)
     (+/-)first   : enable/disable heuristic `widening first' (default: enable)
     -start <n>   : first widening step (default 1)
     -freq <n>    : widening every <n> steps (default 1)
     -descend <n> : number of narrowing steps (default 1)
 -polka "..."         : Polka numeric domain Options
    Suboptions are
     (+/-)widening_affine  : affine/linear mode for widening (default: affine)

BDDs options

 -bdd "..."           : BDDs Options
    Suboptions are
     -group <n>     : separating or mixing
		      Boolean variables and non-Boolean constraints ?
		      0: mixing (default)
		      1: separating (useful if many Boolean vars and few constraints)
     (+/-)parallel  : group parallel constraints ? (default: no)
     (+/-)reorder   : enable/disable reordering after parsing (default: enable)
     (+/-)reorder2  : enable/disable reordering after Boolean analysis (default: enable)
     (+/-)autoreorder
		    : enable/disable autoreordering (default: disable)

Printing (debugging) options

  -print       "..." : Printing Options
   Suboptions are
      +d        : database
      -d        :
      +p        : partition
      -p        :
      +a        : analysis
      -a        :
      +t        : analysis step
      -t        :
      +s        : analysis state
      -s        :
      +pp       : postpre
      -pp       :
      +r        : refinement
      -r        :
      -auto <n> : maximum size of partition to be print
      -bdd <n>  : maximum size of BDDs/MTBDDs to be print

More technical options

Memory options

  -gc          "..." : Memory Options
   Suboptions are
      -space <n>        : sets Gc.space_overhead, default is 42
      -max <n>          : sets Gc.max_overhead, default is max_int
      -cudd <n>         : sets the BDDs ratio used/max to 1/2^n, default is 2^20
      -polka <n>        : sets the polyhedra ratio used/max to size/<n>Meg, default is 256Meg

CUDD options

  -cudd        "..." : CUDD Options
   Suboptions are
      -maxmem <n>       : sets the max. number of MB usable by CUDD
      -siftswap <n>     : set the CUDD parameter SiftMaxSwap (default max_int)

Bertrand Jeannet, February 10, 2011

NBAC Invocation and options