2 name = "Datatypes theory"
3 header = "options/datatypes_options.h"
5 # How to handle selectors applied to incorrect constructors. If this option is set,
6 # then we do not rewrite such a selector term to an arbitrary ground term.
7 # For example, by default cvc5 considers cdr( nil ) = nil. If this option is set, then
8 # cdr( nil ) has no set value.
10 name = "dtRewriteErrorSel"
12 long = "dt-rewrite-error-sel"
15 help = "rewrite incorrectly applied selectors to arbitrary ground term"
18 name = "dtForceAssignment"
20 long = "dt-force-assignment"
23 help = "force the datatypes solver to give specific values to all datatypes terms before answering sat"
26 name = "dtPoliteOptimize"
27 smt_name = "dt-polite-optimize"
28 category = "experimental"
29 long = "dt-polite-optimize"
32 help = "turn on optimization for polite combination"
35 name = "dtBinarySplit"
37 long = "dt-binary-split"
40 help = "do binary splits for datatype constructor types"
45 long = "cdt-bisimilar"
48 help = "do bisimilarity check for co-datatypes"
56 help = "do cyclicity check for datatypes"
59 name = "dtInferAsLemmas"
61 long = "dt-infer-as-lemmas"
64 help = "always send lemmas out instead of making internal inferences"
67 name = "dtBlastSplits"
69 long = "dt-blast-splits"
72 help = "when applicable, blast splitting lemmas for all variables at once"
77 long = "dt-nested-rec"
80 help = "allow nested recursion in datatype definitions"
83 name = "dtSharedSelectors"
88 help = "internally use shared selectors across multiple constructors"
91 name = "sygusSymBreak"
93 long = "sygus-sym-break"
96 help = "simple sygus symmetry breaking lemmas"
99 name = "sygusSymBreakAgg"
101 long = "sygus-sym-break-agg"
104 help = "use aggressive checks for simple sygus symmetry breaking lemmas"
107 name = "sygusSymBreakDynamic"
109 long = "sygus-sym-break-dynamic"
112 help = "dynamic sygus symmetry breaking lemmas"
115 name = "sygusSymBreakPbe"
117 long = "sygus-sym-break-pbe"
120 help = "sygus symmetry breaking lemmas based on pbe conjectures"
123 name = "sygusSymBreakLazy"
125 long = "sygus-sym-break-lazy"
128 help = "lazily add symmetry breaking lemmas for terms"
131 name = "sygusSymBreakRlv"
133 long = "sygus-sym-break-rlv"
136 help = "add relevancy conditions to symmetry breaking lemmas"
141 long = "sygus-fair=MODE"
142 type = "SygusFairMode"
144 help = "if and how to apply fairness for sygus"
145 help_mode = "Modes for enforcing fairness for counterexample guided quantifier instantion."
146 [[option.mode.DIRECT]]
148 help = "Enforce fairness using direct conflict lemmas."
149 [[option.mode.DT_SIZE]]
151 help = "Enforce fairness using size operator."
152 [[option.mode.DT_HEIGHT_PRED]]
153 name = "dt-height-bound"
154 help = "Enforce fairness by height bound predicate."
155 [[option.mode.DT_SIZE_PRED]]
156 name = "dt-size-bound"
157 help = "Enforce fairness by size bound predicate."
160 help = "Do not enforce fairness."
163 name = "sygusFairMax"
165 long = "sygus-fair-max"
168 help = "use max instead of sum for multi-function sygus conjectures"
171 name = "sygusAbortSize"
173 long = "sygus-abort-size=N"
176 help = "tells enumerative sygus to only consider solutions up to term size N (-1 == no limit, default)"