Merge branch '1.4.x'
[cvc5.git] / src / smt / options
1 #
2 # Option specification file for CVC4
3 # See src/options/base_options for a description of this file format
4 #
5
6 module SMT "smt/options.h" SMT layer
7
8 common-option - dump --dump=MODE argument :handler CVC4::smt::dumpMode :handler-include "smt/options_handlers.h"
9 dump preprocessed assertions, etc., see --dump=help
10 common-option - dump-to --dump-to=FILE argument :handler CVC4::smt::dumpToFile :handler-include "smt/options_handlers.h"
11 all dumping goes to FILE (instead of stdout)
12
13 expert-option forceLogic force-logic --force-logic=LOGIC LogicInfo :include "theory/logic_info.h" :handler CVC4::smt::stringToLogicInfo :handler-include "smt/options_handlers.h" :default '""'
14 set the logic, and override all further user attempts to change it
15
16 option simplificationMode simplification-mode --simplification=MODE SimplificationMode :handler CVC4::smt::stringToSimplificationMode :default SIMPLIFICATION_MODE_BATCH :read-write :include "smt/simplification_mode.h" :handler-include "smt/options_handlers.h"
17 choose simplification mode, see --simplification=help
18 alias --no-simplification = --simplification=none
19 turn off all simplification (same as --simplification=none)
20
21 option doStaticLearning static-learning --static-learning bool :default true
22 use static learning (on by default)
23
24 option expandDefinitions expand-definitions bool :default false
25 always expand symbol definitions in output
26 common-option produceModels produce-models -m --produce-models bool :default false :predicate CVC4::smt::beforeSearch :predicate-include "smt/smt_engine.h"
27 support the get-value and get-model commands
28 option checkModels check-models --check-models bool :link --produce-models --interactive :link-smt produce-models :link-smt interactive-mode :predicate CVC4::smt::beforeSearch :predicate-include "smt/options_handlers.h"
29 after SAT/INVALID/UNKNOWN, check that the generated model satisfies user assertions
30 option dumpModels --dump-models bool :default false :link --produce-models
31 output models after every SAT/INVALID/UNKNOWN response
32 option proof produce-proofs --proof bool :default false :predicate CVC4::smt::proofEnabledBuild CVC4::smt::beforeSearch :predicate-include "smt/options_handlers.h"
33 turn on proof generation
34 option checkProofs check-proofs --check-proofs bool :link --proof :link-smt produce-proofs :predicate CVC4::smt::beforeSearch :predicate-include "smt/options_handlers.h"
35 after UNSAT/VALID, machine-check the generated proof
36 option dumpProofs --dump-proofs bool :default false :link --proof
37 output proofs after every UNSAT/VALID response
38 option dumpInstantiations --dump-instantiations bool :default false
39 output instantiations of quantified formulas after every UNSAT/VALID response
40 option unsatCores produce-unsat-cores --produce-unsat-cores bool :predicate CVC4::smt::proofEnabledBuild CVC4::smt::beforeSearch :predicate-include "smt/options_handlers.h"
41 turn on unsat core generation
42 option dumpUnsatCores --dump-unsat-cores bool :default false :link --produce-unsat-cores :link-smt produce-unsat-cores :predicate CVC4::smt::beforeSearch :predicate-include "smt/options_handlers.h"
43 output unsat cores after every UNSAT/VALID response
44
45 option produceAssignments produce-assignments --produce-assignments bool :default false :predicate CVC4::smt::beforeSearch :predicate-include "smt/options_handlers.h"
46 support the get-assignment command
47
48 # This could go in src/main/options, but by SMT-LIBv2 spec, "interactive"
49 # is a mode in which the assertion list must be kept. So it belongs here.
50 common-option interactive interactive-mode --interactive bool :predicate CVC4::smt::beforeSearch :predicate-include "smt/options_handlers.h" :read-write
51 force interactive mode
52
53 option doITESimp --ite-simp bool :read-write
54 turn on ite simplification (Kim (and Somenzi) et al., SAT 2009)
55
56 option doITESimpOnRepeat --on-repeat-ite-simp bool :read-write :default false
57 do the ite simplification pass again if repeating simplification
58
59 option simplifyWithCareEnabled --simp-with-care bool :default false :read-write
60 enables simplifyWithCare in ite simplificiation
61
62 option compressItes --simp-ite-compress bool :default false :read-write
63 enables compressing ites after ite simplification
64
65 option unconstrainedSimp --unconstrained-simp bool :default false :read-write
66 turn on unconstrained simplification (see Bruttomesso/Brummayer PhD thesis)
67
68 option repeatSimp --repeat-simp bool :read-write
69 make multiple passes with nonclausal simplifier
70
71 option zombieHuntThreshold --simp-ite-hunt-zombies uint32_t :default 524288
72 post ite compression enables zombie removal while the number of nodes is above this threshold
73
74 option sortInference --sort-inference bool :read-write :default false
75 calculate sort inference of input problem, convert the input based on monotonic sorts
76
77 common-option incrementalSolving incremental -i --incremental bool :default true
78 enable incremental solving
79
80 option abstractValues abstract-values --abstract-values bool :default false
81 in models, output arrays (and in future, maybe others) using abstract values, as required by the SMT-LIB standard
82 option modelUninterpDtEnum --model-u-dt-enum bool :default false
83 in models, output uninterpreted sorts as datatype enumerations
84
85 option - regular-output-channel argument :handler CVC4::smt::setRegularOutputChannel :handler-include "smt/options_handlers.h"
86 set the regular output channel of the solver
87 option - diagnostic-output-channel argument :handler CVC4::smt::setDiagnosticOutputChannel :handler-include "smt/options_handlers.h"
88 set the diagnostic output channel of the solver
89
90 common-option cumulativeMillisecondLimit tlimit --tlimit=MS "unsigned long"
91 enable time limiting (give milliseconds)
92 common-option perCallMillisecondLimit tlimit-per --tlimit-per=MS "unsigned long"
93 enable time limiting per query (give milliseconds)
94 common-option cumulativeResourceLimit rlimit --rlimit=N "unsigned long"
95 enable resource limiting (currently, roughly the number of SAT conflicts)
96 common-option perCallResourceLimit rlimit-per --rlimit-per=N "unsigned long"
97 enable resource limiting per query
98
99 expert-option rewriteApplyToConst rewrite-apply-to-const --rewrite-apply-to-const bool :default false
100 eliminate function applications, rewriting e.g. f(5) to a new symbol f_5
101
102 # --replay is currently broken; don't document it for 1.0
103 undocumented-option replayFilename --replay=FILE std::string :handler CVC4::smt::checkReplayFilename :handler-include "smt/options_handlers.h"
104 replay decisions from file
105 undocumented-option replayLog --replay-log=FILE std::ostream* :handler CVC4::smt::checkReplayLogFilename :handler-include "smt/options_handlers.h"
106 log decisions and propagations to file
107 option replayStream ExprStream*
108
109 # portfolio options
110 option lemmaInputChannel LemmaInputChannel* :default NULL :include "util/lemma_input_channel.h"
111 The input channel to receive notfication events for new lemmas
112 option lemmaOutputChannel LemmaOutputChannel* :default NULL :include "util/lemma_output_channel.h"
113 The output channel to receive notfication events for new lemmas
114
115 option forceNoLimitCpuWhileDump --force-no-limit-cpu-while-dump bool :default false
116 Force no CPU limit when dumping models and proofs
117
118 endmodule