AltErgoLib.Options
Some values are defined once and for all in the options module since it will be opened in each module. Even though it's not a good habit to do so this will stay like this until the next PR that's supposed to clean some parts of the program
type instantiation_heuristic =
| INormal
Least costly heuristic for instantiation, instantiate on a reduced set of term
*)| IAuto
Default Heuristic that try to do the normal heuristic and then try a greedier instantiation if no new instance have been made
*)| IGreedy
Force instantiation to be the greedier as possible, use all available ground terms
*)Type used to describe the type of heuristic for instantiation wanted by set_instantiation_heuristic
type interpretation =
| INone
Default, No interpretation computed
*)| IFirst
Compute an interpretation after the first instantiation and output it at the end of the executionn
*)| IEvery
Compute an interpretation before every instantiation and return the last one computed
*)| ILast
Compute only the last interpretation just before returning SAT/Unknown
*)Type used to describe the type of interpretation wanted by set_interpretation
type input_format =
| Native
Native Alt-Ergo format
*)| Smtlib2 of smtlib2_version
| Why3
Why3 file format
*)| Unknown of string
Unknown file format
*)Type used to describe the type of input wanted by set_input_format
type output_format = input_format
Type used to describe the type of output wanted by set_output_format
Type used to register the status, if known, of the input problem
Set debug
accessible with get_debug
Set debug_ac
accessible with get_debug_ac
Set debug_adt
accessible with get_debug_adt
Set debug_arith
accessible with get_debug_arith
Set debug_arrays
accessible with get_debug_arrays
Set debug_bitv
accessible with get_debug_bitv
Set debug_cc
accessible with get_debug_cc
Set debug_combine
accessible with get_debug_combine
Set debug_constr
accessible with get_debug_constr
Set debug_explanations
accessible with get_debug_explanations
Set debug_fm
accessible with get_debug_fm
Set debug_intervals
accessible with get_debug_intervals
Set debug_gc
accessible with get_debug_gc
Set debug_interpretation
accessible with get_debug_interpretation
Set debug_ite
accessible with get_debug_ite
Set debug_sat
accessible with get_debug_sat
Set debug_split
accessible with get_debug_split
Set debug_triggers
accessible with get_debug_triggers
Set debug_types
accessible with get_debug_types
Set debug_uf
accessible with get_debug_uf
Set debug_unsat_core
accessible with get_debug_unsat_core
Set debug_use
accessible with get_debug_use
Set debug_commands
accessible with get_debug_commands
Set debug_optimize
accessible with get_debug_optimize
Set profiling
accessible with get_profiling
Set timers
accessible with get_timers
Set type_only
accessible with get_type_only
Set age_bound
accessible with get_age_bound
Set bottom_classes
accessible with get_bottom_classes
val set_fm_cross_limit : Numbers.Q.t -> unit
Set fm_cross_limit
accessible with get_fm_cross_limit
val set_instantiation_heuristic : instantiation_heuristic -> unit
Set instantiation_heuristic
accessible with get_instantiation_heuristic
Set inline_lets
accessible with get_inline_lets
val set_input_format : input_format option -> unit
Set input_format
accessible with get_input_format
val set_interpretation : interpretation -> unit
Set interpretation
accessible with get_interpretation
Possible values are :
Set strict_mode
accessible with get_strict_mode
.
dump_models
accessible with get_dump_models
.
Set objectives_in_interpretation
accessible with get_objectives_in_interpretation
val set_max_split : Numbers.Q.t -> unit
Set max_split
accessible with get_max_split
Set nb_triggers
accessible with get_nb_triggers
Set no_ac
accessible with get_no_ac
Set no_ematching
accessible with get_no_ematching
Set no_nla
accessible with get_no_nla
Set no_user_triggers
accessible with get_no_user_triggers
Set normalize_instances
accessible with get_normalize_instances
val set_output_format : output_format -> unit
Set output_format
accessible with get_output_format
val set_model_type : model_type -> unit
Set model_type
accessible with get_model_type
Set parse_only
accessible with get_parse_only
Set restricted
accessible with get_restricted
Set rewriting
accessible with get_rewriting
Set rule
accessible with get_rule
Set save_used_context
accessible with get_save_used_context
Set steps_bound
accessible with get_steps_bound
Set term_like_pp
accessible with get_term_like_pp
Set timelimit
accessible with get_timelimit
Set triggers_var
accessible with get_triggers_var
Set type_smt2
accessible with get_type_smt2
Set unsat_core
accessible with get_unsat_core
Set verbose
accessible with get_verbose
Set status
accessible with get_status
Set file
accessible with get_file
Setters used by parse_command
val set_case_split_policy : Util.case_split_policy -> unit
Set case_split_policy
accessible with get_case_split_policy
Set enable_adts_cs
accessible with get_enable_adts_cs
Set enable_sat_cs
accessible with get_enable_sat_cs
Set replay
accessible with get_replay
Set replay_all_used_context
accessible with get_replay_all_used_context
Set replay_used_context
accessible with get_replay_used_context
Set output_with_colors
accessible with get_output_with_colors
Set output_with_headers
accessible with get_output_with_headers
Set output_with_formatting
accessible with get_output_with_formatting
Set output_with_forced_flush
accessible with get_output_with_forced_flush
Set infer_output_format
accessible with get_infer_output_format
Set preludes
accessible with get_preludes
val set_theory_preludes : Theories.prelude list -> unit
Set theory_preludes
accessible with get_theory_preludes
Set disable_weaks
accessible with get_disable_weaks
Set enable_assertions
accessible with get_enable_assertions
Set warning_as_error
accessible with get_warning_as_error
Set exit_on_error
accessible with get_exit_on_error
Set timelimit_interpretation
accessible with get_timelimit_interpretation
Set timelimit_per_goal
accessible with get_timelimit_per_goal
Set cumulative_time_profiling
accessible with get_cumulative_time_profiling
Set profiling_period
accessible with get_profiling_period
Set profiling_plugin
accessible with get_profiling_plugin
Set instantiate_after_backjump
accessible with get_instantiate_after_backjump
Set max_multi_triggers_size
accessible with get_max_multi_triggers_size
Set arith_matching
accessible with get_arith_matching
Set cdcl_tableaux_inst
accessible with get_cdcl_tableaux_inst
Set cdcl_tableaux_th
accessible with get_cdcl_tableaux_th
Set disable_flat_formulas_simplification
accessible with get_disable_flat_formulas_simplification
Set enable_restarts
accessible with get_enable_restarts
Set minimal_bj
accessible with get_minimal_bj
Set no_backjumping
accessible with get_no_backjumping
Set no_backward
accessible with get_no_backward
Set no_decisions
accessible with get_no_decisions
Set no_decisions_on
accessible with get_no_decisions_on
Set no_sat_learning
accessible with get_no_sat_learning
Set sat_plugin
accessible with get_sat_plugin
val set_sat_solver : Util.sat_solver -> unit
Set sat_solver
accessible with get_sat_solver
Set disable_ites
accessible with get_disable_ites
Set disable_adts
accessible with get_disable_adts
Set no_fm
accessible with get_no_fm
Set no_tcp
accessible with get_no_tcp
Set no_theory
accessible with get_no_theory
Set tighten_vars
accessible with get_tighten_vars
Set session_file
accessible with get_session_file
Set used_context_file
accessible with get_used_context_file
Default value for all the debug flags is false
Get the debugging flag of commands. If enabled, Alt-Ergo will display all the commands that are sent to the solver.
Get the debugging flag of optimize. If enabled, Alt-Ergo will output debugging messages about the optimization of values in models.
Replay unsat-cores produced by get_unsat_core
. The option implies get_unsat_core
returns true
.
Get the debugging flag of E-matching
Possible values are
val get_case_split_policy : unit -> Util.case_split_policy
Value specifying the case-split policy.
Possible values are :
Default to after-theory-assume
true
if case-split for Algebraic Datatypes theory is enabled.
Default to false
true
if case-split are performed in the SAT solver rather than the theory solver (only for CDCL solver and for select theories).
Default to false
val get_max_split : unit -> Numbers.Q.t
Valuget_e specifying the maximum size of case-split.
Default to 1_000_000
true
if replay with all axioms and predicates saved in .used
files of the current directory is enabled.
Default to false
true
if replay with axioms and predicates saved in .used
file is enabled.
Default to false
true
if used axioms and predicates will be saved in a .used
file. This option implies get_unsat_core
returns true
.
Default to false
true
if the locations of goals is shown when printing solver's answers.
Default to true
true
if the outputs are printed with headers
Default to true
true
if the outputs are printed with formatting rules
Default to true
true
if the outputs are flushed at the end of every print
Default to true
val get_input_format : unit -> input_format option
Value specifying the default input format. Useful when the extension does not allow to automatically select a parser (eg. JS mode, GUI mode, ...). possible values are
If None
, Alt-Ergo will automatically infer the input format according to the file extension.
Default to None
val get_theory_preludes : unit -> Theories.prelude list
List of theory preludes to load.
true
if the GC is prevented from collecting hashconsed data structrures that are not reachable (useful for more determinism).
Default to false
true
if verification of some heavy invariants is enabled.
Default to false
val get_fm_cross_limit : unit -> Numbers.Q.t
Value specifying the limit above which Fourier-Motzkin variables elimination steps that may produce a number of inequalities that is greater than this limit are skipped. However, unit eliminations are always done.
Default to 10_000
Value specifying the time limit (not supported on Windows).
Default to 0.
Value specifying the time limit for model generation (not supported on Windows).
Default to 1.
(not supported on Windows)
Value specifying the given timelimit for each goal in case of multiple goals per file. In this case, time spent in preprocessing is separated from resolution time.
$Not relevant for GUI-mode.
Default to false
Experimental support for counter-example generation.
Possible values are :
Which are used in the four getters below. This option answers true
if the interpretation is set to First, Before_end, Before_dec or Before_inst.
Note that get_max_split
limitation will be ignored in model generation phase.
Default to false
true
if the interpretation for each goal or check-sat is printed.
Default to false
.
true
if the interpretation is set to first interpretation
Default to false
true
if the interpretation is set to compute interpretation before every instantiation
Default to false
true
if the interpretation is set to compute interpretation before the solver return unknown
Default to false
true
if the objectives_in_interpretation is set to inline pretty-printing of optimized expressions in the model instead of a dedicated section '(objectives ...)'. Be aware that the model may be shrunk or not accurate if some expressions to optimize are unbounded.
Default to false
val get_output_format : unit -> output_format
Value specifying the default output format. possible values are
.
Default to Native
true
if the output format is set to smtlib2 or why3
Default to false
val get_model_type : unit -> model_type
Value specifying the default model type. possible values are
.
Default to Value
true
if the model kind is set to constraints .
Default to false
true
if Alt-Ergo infers automatically the output format according to the the file extension or the input format if set.
Default to true
true
if experimental support for unsat-cores is on.
Default to false
true
if the profiling module is activated.
Use Ctrl-C to switch between different views and Ctrl + AltGr + \ to exit.
Default to false
Value specifying the profiling module frequency.
Default to 0.
true
if the time spent in called functions is recorded in callers
Default to false
Value specifying which module is used as a profiling plugin.
Default to false
true
if profiling is set to true (automatically enabled)
Default to false
val get_instantiation_heuristic : unit -> instantiation_heuristic
Value specifying the instantiation heuristic. possible values are
.
Default to IAuto
true
if a (normal) instantiation round is made after every backjump/backtrack.
Default to false
Value specifying the max number of terms allowed in multi-triggers.
Default to 4
true
if matching modulo ground equalities is disabled.
Default to false
true
if user triggers are ignored except for triggers of theories axioms
Default to false
true
if generated substitutions are normalised by matching w.r.t. the state of the theory.
This means that only terms that are greater (w.r.t. depth) than the initial terms of the problem are normalized.
Default to false
true
if (the weak form of) matching modulo linear arithmetic is disabled.
Default to true
true
if backjumping mechanism in the functional SAT solver is disabled.
Default to false
true
if equivalence classes at each bottom of the SAT are shown.
Default to false
val get_sat_solver : unit -> Util.sat_solver
Value specifying which SAT solver is being used.
Possible values are:
CDCL-tableaux : CDCL SAT-solver with formulas filtering based on tableaux method
CDCL : CDCL SAT-solver
Tableaux : SAT-solver based on tableaux method
Tableaux-CDCL : Tableaux method assisted with a CDCL SAT-solver
Default to CDCL-tableaux
true
if the use of a tableaux-like method for instantiations is enabled with the CDCL solver if satML is used.
Default to true
true
if the use of a tableaux-like method for theories is enabled with the CDCL solver if satML is used.
Default to true
true
if the use of a tableaux-like method for theories or instantiations is enabled with the CDCL solver if satML is used.
Default to true
true
if the tableaux SAT-solver is used with CDCL assist.
Default to false
true
if minimal backjumping in satML CDCL solver is enabled
Default to true
true
if facts simplification is disabled in satML's flat formulas.
Default to false
true
if learning/caching of unit facts in the Default SAT is disabled. These facts are used to improve bcp.
Default to true
(sat_learning is active)
true
if handling of ite(s) on terms in the backend is disabled.
Default to false
true
if substitution of variables bounds by Let is enabled. The default behavior is to only substitute variables that are bound to a constant, or that appear at most once.
Default to false
true
if rewriting is used instead of axiomatic approach.
Default to false
true
if the AC (Associative and Commutative) theory is disabled for function symbols.
Default to false
true
if non-linear arithmetic reasoning (i.e. non-linear multplication, division and modulo on integers and rationals) is disabled. Non-linear multiplication remains AC.
Default to false
true
if backward reasoning step (starting from the goal) done in the default SAT solver before deciding is disabled.
Default to false
true
if the set of decision procedures (equality, arithmetic and AC) is restricted.
Default to false
true
if the best bounds for arithmetic variables is computed.
Default to false
Possible values are
output rule used on stderr.
Default to -1
val get_status : unit -> known_status
Value specifying the status of the file given to Alt-Ergo
Default to Status_Unknown
Value specifying the session file (base_name.agr
) handled by Alt-Ergo
Default to false
Value specifying the base name of the file (with no extension)
Default to false
module Time : sig ... end
with_timelimit_if cond f
is:
Time.with_timeout (get_timeout ()) f
when cond
is true
f ()
otherwiseGlobal functions used throughout the whole program
val match_extension : string -> input_format
Extra
This functions are use to print or set the output used to print debug or error informations
module Output : sig ... end
Output channels manager.
module Sources : sig ... end
Print message as comment in the corresponding output format