Kratos2 Configuration Options
Here is the list of options supported by Kratos2. They can be set from the command-line when running the kratos binary, or programmatically via the C or Python APIs (using kratos_config in C, or by populating dictionaries in Python).
Options exclusive to the kratos binary
h,help: print help message.output_file=STR: output file.stage=ENUM: if set, stop at the given stage of the translation pipeline. Possible values:cex: cex trace reconstruction.cfg: CFG building.check_inv: check given inductive invariant.flatten: flattening of expressions.inline: function inlining.mc: model checking.parse: input file parsing.sim: interactive simulation.smt: use Kratos as an SMT solver (by executing the embedded MathSAT solver).symexec: perform symbolic execution.trans: transition system encoding.
version: show version info.dump_intermediate_stages=BOOL: dump results of intermediate stages.dump_program_stats=ENUM: Dump program statistics at different transformation stages. Possible values:after_flattening: After flattening.after_inlining: After inlining.after_parsing: After input file parsing.always: At each stage.
intermediate_output_dir=STR: output directory for intermediate stage dumping.
General
random_seed=INT: Seed for the internal random number generators.verbosity=INT: verbosity level.
Preprocessing
apply_slicing=BOOL: Apply slicing to the CFG before converting into transition system.functions_to_inline=STR: space-separated list of function names to inline (if not given, all functions will be inlined). Meaningful only with -stage=inline.functions_to_inline_file=STR: name of file with the list of functions to inline (one per line).inline_calls_threshold=INT: if > 0, inline all functions that with <= NUM calls.inline_detect_output_params=BOOL: if true, detect output parameters when doing function inlining to avoid generating intermediate memory stores.inline_max_depth=INT: maximum recursion depth for function inlining.inline_max_depth_add_check=BOOL: if true, add a run-time check that the max inlining depth is not reached.propagate_constants=ENUM: Apply constant propagation to the CFG. Possible values:false: No constant propagation.maps: Constant propagation only on map indices.true: Full constant propagation.
remove_const_maps=BOOL: Replace maps always accessed by constant indices with regular variables in the CFG.remove_globals=BOOL: Remove global variables.remove_loops=BOOL: If true, do not add loopback edges after loop unrolling.unroll_loops=INT: Unroll loops N times in the CFG.unroll_loops_maxdepth=INT: If nonzero, do not unroll loops with more than N nested loops.
Verification
error_id=STR: id of the error to check.inv_check_file=STR: Inductive invariant to check.inv_output_file=STR: Inductive invariant output file.live_id=STR: id of the live label to check.mc_use_exit_codes=BOOL: If false, exit with zero instead of result codes when model checking is successful.model_checking_bmc_bound=INT: If >0, maximum bound for BMC.model_checking_engine=ENUM: Model checking engine to use. Possible values:bitprophic3: BitProphIC3.bitprophic3abs: BitProphIC3 with abstraction.bitprophic3bmc: BitProphIC3 BMC.bitprophic3kind: BitProphIC3 K-induction.bmc: BMC.kind: K-induction.msatic3: IC3 with Implicit Abstraction.msatic3smt: IC3 for SMT(LRA) and SMT(LIA).simplic3: SimplIC3.simplic3abs: SimplIC3 with abstraction.simplic3avy: SimplIC3 with Avy.simplic3bmc: SimplIC3 BMC.simplic3kind: SimplIC3 k-induction.
model_checking_invert_ts=BOOL: If true, invert the transition system for model checking.show_inv=BOOL: Show the inductive invariant (for the underlying transition system) proving the property.single_error=BOOL: check unreachability of all error labels as a single property.trans_cfg=BOOL: if true, use an explicit representation of the CFG when encoding into transition system (currently supported only by the vmt output).trans_defines_prefix=STR: prefix to use for defines when dumping the transition system in VMT or nuXmv format.trans_encoding=ENUM: transition system encoding type. Possible values:basic: basic blocks.large: large blocks.
trans_enum_mode=ENUM: encoding mode for enum types. Possible values:bv: Bit-vector values.int: Integer values.symbolic: Symbolic values.
trans_int_as_real=BOOL: if true, encode integer variables as reals.trans_loc_int=BOOL: if true, encode locations as integers instead of bits.trans_output_format=ENUM: transition system output format. Possible values:aiger: Aiger.btor: Btor2.chc: Constrained Horn Clauses (CHCs).nuxmv: nuXmv output.nuxmv-no-defines: nuXmv output without DEFINEs.vmt: VMT output.
trans_procedural=BOOL: if true, enable procedural encoding (only supported by CHC backend).trans_unsupported_op_uf=BOOL: if true, use uninterpreted functions to encode unsupported operations over integers/reals.trans_use_ite=BOOL: if true, allow term-ITEs when encoding into transition system.
Simulation
sim_assume_error=BOOL: If false, terminate the simulation instead of raising an error when reaching a violated assumption.sim_interactive=BOOL: If true, perform interactive instead of random simulation.sim_max_count=INT: If nonzero, stop the simulation after having reached the target(s) N times.sim_target=STR: Target for simulation.symexec_concretize=BOOL: If true, use concretization in symbolic execution.symexec_concretize_target=STR: Target for concretization in symbolic execution.symexec_depth_inc=INT: Increment value for the iterative deepening in symbolic execution.symexec_depth_target=STR: Target for measuring the depth of symbolic execution (if not given, the depth will be based on the number of backtrack points in the solver).symexec_initial_depth=INT: Initial bound for the iterative deepening in symbolic execution.symexec_iterative=BOOL: If true, use an iterative-deepening strategy for symbolic execution.symexec_max_depth=INT: Max depth for symbolic execution.symexec_random=BOOL: If true, randomise the search during symbolic execution.symexec_solver_reset_frequency=INT: If nonzero, the reset interval (in number of checks) for the SMT solver in symbolic execution.
Counterexamples
cex_important_functions=STR: space-separated list of important functions,used when -cex_type=cfgcex_output_file=STR: Counterexample output file.cex_type=ENUM: Type of counterexamples to generate (when -stage=mc). Possible values:cfg: Only control flow graph information.none: No counterexample.path: Full execution path.patheval: Execution path with evaluated rvalues.pathevalmap: Execution path with evaluated map indices.
trans_cex_trace_file=STR: File with counterexample trace to reconstruct.trans_cex_trace_format=ENUM: Counterexample trace input format. Possible values:nuxmv: nuXmv XML format.vmt: VMT format.

