summaryrefslogtreecommitdiff
path: root/src/options/quantifiers_options
blob: f15723e085730dbaaa054ce7dc44ac9599b7d084 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
#
# Option specification file for CVC4
# See src/options/base_options for a description of this file format
#

module QUANTIFIERS "options/quantifiers_options.h" Quantifiers

#### rewriter options

# Whether to mini-scope quantifiers.
# For example, forall x. ( P( x ) ^ Q( x ) ) will be rewritten to
# ( forall x. P( x ) ) ^ ( forall x. Q( x ) )
option miniscopeQuant --miniscope-quant bool :default true :read-write
 miniscope quantifiers
# Whether to mini-scope quantifiers based on formulas with no free variables.
# For example, forall x. ( P( x ) V Q ) will be rewritten to
# ( forall x. P( x ) ) V Q
option miniscopeQuantFreeVar --miniscope-quant-fv bool :default true :read-write
 miniscope quantifiers for ground subformulas
option quantSplit --quant-split bool :default true :read-write
 apply splitting to quantified formulas based on variable disjoint disjuncts
option prenexQuant --prenex-quant=MODE CVC4::theory::quantifiers::PrenexQuantMode :default CVC4::theory::quantifiers::PRENEX_QUANT_SIMPLE :include "options/quantifiers_modes.h" :read-write :handler stringToPrenexQuantMode
 prenex mode for quantified formulas
option prenexQuantUser --prenex-quant-user bool :default false :read-write
 prenex quantified formulas with user patterns
# Whether to variable-eliminate quantifiers.
# For example, forall x y. ( P( x, y ) V x != c ) will be rewritten to
#   forall y. P( c, y )
option varElimQuant --var-elim-quant bool :default true
 enable simple variable elimination for quantified formulas
option varIneqElimQuant --var-ineq-elim-quant bool :default true
 enable variable elimination based on infinite projection of unbound arithmetic variables
option dtVarExpandQuant --dt-var-exp-quant bool :default true
 expand datatype variables bound to one constructor in quantifiers
#ite lift mode for quantified formulas
option iteLiftQuant --ite-lift-quant=MODE CVC4::theory::quantifiers::IteLiftQuantMode :default CVC4::theory::quantifiers::ITE_LIFT_QUANT_MODE_SIMPLE :include "options/quantifiers_modes.h" :read-write :handler stringToIteLiftQuantMode
 ite lifting mode for quantified formulas
option condVarSplitQuant --cond-var-split-quant bool :default true
 split quantified formulas that lead to variable eliminations
option condVarSplitQuantAgg --cond-var-split-agg-quant bool :default false
 aggressive split quantified formulas that lead to variable eliminations
option iteDtTesterSplitQuant --ite-dtt-split-quant bool :read-write :default false
 split ites with dt testers as conditions
# Whether to pre-skolemize quantifier bodies.
# For example, forall x. ( P( x ) => (exists y. f( y ) = x) ) will be rewritten to
#   forall x. P( x ) => f( S( x ) ) = x
option preSkolemQuant --pre-skolem-quant bool :read-write :default false
 apply skolemization eagerly to bodies of quantified formulas
option preSkolemQuantNested --pre-skolem-quant-nested bool :read-write :default true
 apply skolemization to nested quantified formulas
option preSkolemQuantAgg --pre-skolem-quant-agg bool :read-write :default true
 apply skolemization to quantified formulas aggressively
option aggressiveMiniscopeQuant --ag-miniscope-quant bool :default false
 perform aggressive miniscoping for quantifiers
option elimTautQuant --elim-taut-quant bool :default true
 eliminate tautological disjuncts of quantified formulas
option elimExtArithQuant --elim-ext-arith-quant bool :read-write :default true
 eliminate extended arithmetic symbols in quantified formulas
option condRewriteQuant --cond-rewrite-quant bool :default true
 conditional rewriting of quantified formulas
 
#### E-matching options
 
option eMatching --e-matching bool :read-write :default true
 whether to do heuristic E-matching

option termDbMode --term-db-mode CVC4::theory::quantifiers::TermDbMode :default CVC4::theory::quantifiers::TERM_DB_ALL :read-write :include "options/quantifiers_modes.h" :handler  stringToTermDbMode
 which ground terms to consider for instantiation
option registerQuantBodyTerms --register-quant-body-terms bool :default false
 consider ground terms within bodies of quantified formulas for matching
option inferArithTriggerEq --infer-arith-trigger-eq bool :default false
 infer equalities for trigger terms based on solving arithmetic equalities
option inferArithTriggerEqExp --infer-arith-trigger-eq-exp bool :default false
 record explanations for inferArithTriggerEq
 
option strictTriggers --strict-triggers bool :default false
 only instantiate quantifiers with user patterns based on triggers
option relevantTriggers --relevant-triggers bool :default false
 prefer triggers that are more relevant based on SInE style analysis
option relationalTriggers --relational-triggers bool :default false
 choose relational triggers such as x = f(y), x >= f(y)
option purifyTriggers --purify-triggers bool :default false :read-write
 purify triggers, e.g. f( x+1 ) becomes f( y ), x mapsto y-1
option purifyDtTriggers --purify-dt-triggers bool :default false :read-write
 purify dt triggers, match all constructors of correct form instead of selectors
option pureThTriggers --pure-th-triggers bool :default false :read-write
 use pure theory terms as single triggers
option partialTriggers --partial-triggers bool :default false :read-write
 use triggers that do not contain all free variables
option multiTriggerWhenSingle --multi-trigger-when-single bool :default false
 select multi triggers when single triggers exist
option multiTriggerPriority --multi-trigger-priority bool :default false
 only try multi triggers if single triggers give no instantiations
option multiTriggerCache --multi-trigger-cache bool :default false
 caching version of multi triggers
option multiTriggerLinear --multi-trigger-linear bool :default true
 implementation of multi triggers where maximum number of instantiations is linear wrt number of ground terms
option triggerSelMode --trigger-sel CVC4::theory::quantifiers::TriggerSelMode :default CVC4::theory::quantifiers::TRIGGER_SEL_MIN :read-write :include "options/quantifiers_modes.h" :handler  stringToTriggerSelMode
 selection mode for triggers
option triggerActiveSelMode --trigger-active-sel CVC4::theory::quantifiers::TriggerActiveSelMode :default CVC4::theory::quantifiers::TRIGGER_ACTIVE_SEL_ALL :read-write :include "options/quantifiers_modes.h" :handler stringToTriggerActiveSelMode
 selection mode to activate triggers
option userPatternsQuant --user-pat=MODE CVC4::theory::quantifiers::UserPatMode :default CVC4::theory::quantifiers::USER_PAT_MODE_TRUST :read-write :include "options/quantifiers_modes.h" :handler stringToUserPatMode
 policy for handling user-provided patterns for quantifier instantiation
option incrementTriggers --increment-triggers bool :default true
 generate additional triggers as needed during search
 
option instWhenMode --inst-when=MODE CVC4::theory::quantifiers::InstWhenMode :default CVC4::theory::quantifiers::INST_WHEN_FULL_LAST_CALL :read-write :include "options/quantifiers_modes.h" :handler stringToInstWhenMode :predicate checkInstWhenMode
 when to apply instantiation
option instWhenStrictInterleave --inst-when-strict-interleave bool :default true :read-write
 ensure theory combination and standard quantifier effort strategies take turns 
option instWhenPhase --inst-when-phase=N int :read-write :default 2 :read-write
 instantiation rounds quantifiers takes (>=1) before allowing theory combination to happen
option instWhenTcFirst --inst-when-tc-first bool :default true :read-write
 allow theory combination to happen once initially, before quantifier strategies are run
option quantModelEe --quant-model-ee bool :default false
 use equality engine of model for last call effort
 
option instMaxLevel --inst-max-level=N int :read-write :default -1
 maximum inst level of terms used to instantiate quantified formulas with (-1 == no limit, default)
option instLevelInputOnly --inst-level-input-only bool :default true
 only input terms are assigned instantiation level zero
option quantRepMode --quant-rep-mode=MODE  CVC4::theory::quantifiers::QuantRepMode :default CVC4::theory::quantifiers::QUANT_REP_MODE_FIRST :read-write :include "options/quantifiers_modes.h" :handler stringToQuantRepMode
 selection mode for representatives in quantifiers engine
option instRelevantCond --inst-rlv-cond bool :default false
 add relevancy conditions for instantiations

option fullSaturateQuant --full-saturate-quant bool :default false :read-write
 when all other quantifier instantiation strategies fail, instantiate with ground terms from relevant domain, then arbitrary ground terms before answering unknown
option fullSaturateQuantRd --full-saturate-quant-rd bool :default true
 whether to use relevant domain first for full saturation instantiation strategy
option fullSaturateInst --fs-inst bool :default false
 interleave full saturate instantiation with other techniques

option literalMatchMode --literal-matching=MODE CVC4::theory::quantifiers::LiteralMatchMode :default CVC4::theory::quantifiers::LITERAL_MATCH_USE :include "options/quantifiers_modes.h" :handler stringToLiteralMatchMode :predicate checkLiteralMatchMode
 choose literal matching mode

### finite model finding options
 
option finiteModelFind finite-model-find --finite-model-find bool :default false :read-write
 use finite model finding heuristic for quantifier instantiation

option quantFunWellDefined --quant-fun-wd bool :default false
 assume that function defined by quantifiers are well defined
option fmfFunWellDefined --fmf-fun bool :default false :read-write
 find models for recursively defined functions, assumes functions are admissible
option fmfFunWellDefinedRelevant --fmf-fun-rlv bool :default false
 find models for recursively defined functions, assumes functions are admissible, allows empty type when function is irrelevant
option fmfEmptySorts --fmf-empty-sorts bool :default false
 allow finite model finding to assume sorts that do not occur in ground assertions are empty
 
option mbqiMode --mbqi=MODE CVC4::theory::quantifiers::MbqiMode :read-write :default CVC4::theory::quantifiers::MBQI_FMC :include "options/quantifiers_modes.h" :handler stringToMbqiMode :predicate checkMbqiMode
 choose mode for model-based quantifier instantiation
option fmfOneInstPerRound --mbqi-one-inst-per-round bool :read-write :default false
 only add one instantiation per quantifier per round for mbqi
option fmfOneQuantPerRound --mbqi-one-quant-per-round bool :default false
 only add instantiations for one quantifier per round for mbqi

option fmfInstEngine --fmf-inst-engine bool :default false :read-write
 use instantiation engine in conjunction with finite model finding
option fmfInstGen --fmf-inst-gen bool :default true
 enable Inst-Gen instantiation techniques for finite model finding 
option fmfInstGenOneQuantPerRound --fmf-inst-gen-one-quant-per-round bool :default false
 only perform Inst-Gen instantiation techniques on one quantifier per round
option fmfFreshDistConst --fmf-fresh-dc bool :default false
 use fresh distinguished representative when applying Inst-Gen techniques
option fmfFmcSimple --fmf-fmc-simple bool :default true
 simple models in full model check for finite model finding
option fmfBoundInt fmf-bound-int --fmf-bound-int bool :default false :read-write
 finite model finding on bounded integer quantification
option fmfBound fmf-bound --fmf-bound bool :default false :read-write
 finite model finding on bounded quantification
option fmfBoundLazy --fmf-bound-lazy bool :default false :read-write
 enforce bounds for bounded quantification lazily via use of proxy variables
option fmfBoundMinMode --fmf-bound-min-mode=MODE CVC4::theory::quantifiers::FmfBoundMinMode :default CVC4::theory::quantifiers::FMF_BOUND_MIN_INT_RANGE :include "options/quantifiers_modes.h" :handler stringToFmfBoundMinMode
 mode for which types of bounds to minimize via first decision heuristics
 
### conflict-based instantiation options 
 
option quantConflictFind --quant-cf bool :read-write :default true
 enable conflict find mechanism for quantifiers
option qcfMode --quant-cf-mode=MODE CVC4::theory::quantifiers::QcfMode :default CVC4::theory::quantifiers::QCF_PROP_EQ :include "options/quantifiers_modes.h" :handler stringToQcfMode
 what effort to apply conflict find mechanism
option qcfWhenMode --quant-cf-when=MODE CVC4::theory::quantifiers::QcfWhenMode :default CVC4::theory::quantifiers::QCF_WHEN_MODE_DEFAULT :include "options/quantifiers_modes.h" :handler stringToQcfWhenMode
 when to invoke conflict find mechanism for quantifiers
option qcfTConstraint --qcf-tconstraint bool :read-write :default false
 enable entailment checks for t-constraints in qcf algorithm
option qcfAllConflict --qcf-all-conflict bool :read-write :default false
 add all available conflicting instances during conflict-based instantiation
option qcfNestedConflict --qcf-nested-conflict bool :default false
 consider conflicts for nested quantifiers
option qcfVoExp --qcf-vo-exp bool :default false
 qcf experimental variable ordering

option instNoEntail --inst-no-entail bool :read-write :default true
 do not consider instances of quantified formulas that are currently entailed
option instNoModelTrue --inst-no-model-true bool :read-write :default false
 do not consider instances of quantified formulas that are currently true in model, if it is available

option instPropagate --inst-prop bool :read-write :default false
 internal propagation for instantiations for selecting relevant instances
 
option qcfEagerTest --qcf-eager-test bool :default true
 optimization, test qcf instances eagerly
option qcfEagerCheckRd --qcf-eager-check-rd bool :default true
 optimization, eagerly check relevant domain of matched position
option qcfSkipRd --qcf-skip-rd bool :default false
 optimization, skip instances based on possibly irrelevant portions of quantified formulas
 
### rewrite rules options 
 
option quantRewriteRules --rewrite-rules bool :default false
 use rewrite rules module
option rrOneInstPerRound --rr-one-inst-per-round bool :default false
 add one instance of rewrite rule per round
 
### induction options 
 
option quantInduction --quant-ind bool :default false
 use all available techniques for inductive reasoning
option dtStcInduction --dt-stc-ind bool :read-write :default false
 apply strengthening for existential quantification over datatypes based on structural induction
option intWfInduction --int-wf-ind bool :read-write :default false
 apply strengthening for integers based on well-founded induction
option conjectureGen --conjecture-gen bool :read-write :default false
 generate candidate conjectures for inductive proofs
 
option conjectureGenPerRound --conjecture-gen-per-round=N int :default 1
 number of conjectures to generate per instantiation round 
option conjectureNoFilter --conjecture-no-filter bool :default false
 do not filter conjectures
option conjectureFilterActiveTerms --conjecture-filter-active-terms bool :read-write :default true
 filter based on active terms
option conjectureFilterCanonical --conjecture-filter-canonical bool :read-write :default true
 filter based on canonicity
option conjectureFilterModel --conjecture-filter-model bool :read-write :default true
 filter based on model
option conjectureGenGtEnum --conjecture-gen-gt-enum=N int :default 50
 number of ground terms to generate for model filtering
option conjectureUeeIntro --conjecture-gen-uee-intro bool :default false
 more aggressive merging for universal equality engine, introduces terms
option conjectureGenMaxDepth --conjecture-gen-max-depth=N int :default 3
 maximum depth of terms to consider for conjectures
  
### synthesis options 

option ceGuidedInst --cegqi bool :default false :read-write
  counterexample-guided quantifier instantiation
option ceGuidedInstFair --cegqi-fair=MODE CVC4::theory::quantifiers::CegqiFairMode :default CVC4::theory::quantifiers::CEGQI_FAIR_DT_SIZE :include "options/quantifiers_modes.h" :handler stringToCegqiFairMode
  if and how to apply fairness for cegqi
option cegqiSingleInvMode --cegqi-si=MODE CVC4::theory::quantifiers::CegqiSingleInvMode :default CVC4::theory::quantifiers::CEGQI_SI_MODE_NONE :include "options/quantifiers_modes.h" :handler stringToCegqiSingleInvMode :read-write
  mode for processing single invocation synthesis conjectures
option cegqiSingleInvPartial --cegqi-si-partial bool :default false
  combined techniques for synthesis conjectures that are partially single invocation 
option cegqiSingleInvReconstruct --cegqi-si-reconstruct bool :default true
  reconstruct solutions for single invocation conjectures in original grammar
option cegqiSolMinCore --cegqi-si-sol-min-core bool :default false
  minimize solutions for single invocation conjectures based on unsat core
option cegqiSolMinInst --cegqi-si-sol-min-inst bool :default true
  minimize individual instantiations for single invocation conjectures based on unsat core
option cegqiSingleInvReconstructConst --cegqi-si-reconstruct-const bool :default true
  include constants when reconstruct solutions for single invocation conjectures in original grammar
option cegqiSingleInvAbort --cegqi-si-abort bool :default false
  abort if synthesis conjecture is not single invocation
  
option sygusNormalForm --sygus-nf bool :default true
  only search for sygus builtin terms that are in normal form
option sygusNormalFormArg --sygus-nf-arg bool :default true
  account for relationship between arguments of operations in sygus normal form
option sygusNormalFormGlobal --sygus-nf-sym bool :default true
  narrow sygus search space based on global state of current candidate program
option sygusNormalFormGlobalGen --sygus-nf-sym-gen bool :default true
  generalize lemmas for global search space narrowing
option sygusNormalFormGlobalArg --sygus-nf-sym-arg bool :default true
  generalize based on arguments in global search space narrowing
option sygusNormalFormGlobalContent --sygus-nf-sym-content bool :default true
  generalize based on content in global search space narrowing
  
option sygusInvTemplMode --sygus-inv-templ=MODE CVC4::theory::quantifiers::SygusInvTemplMode :default CVC4::theory::quantifiers::SYGUS_INV_TEMPL_MODE_NONE :include "options/quantifiers_modes.h" :handler stringToSygusInvTemplMode
  template mode for sygus invariant synthesis
option sygusUnifCondSol --sygus-unif-csol bool :default false
  enable approach which unifies conditional solutions

option sygusDirectEval --sygus-direct-eval bool :default true
  direct unfolding of evaluation functions
option sygusCRefEval --sygus-cref-eval bool :default false
  direct evaluation of refinement lemmas for conflict analysis
  
# approach applied to general quantified formulas
option cbqi --cbqi bool :read-write :default false
 turns on counterexample-based quantifier instantiation
option recurseCbqi --cbqi-recurse bool :default true
 turns on recursive counterexample-based quantifier instantiation
option cbqiSat --cbqi-sat bool :read-write :default true
 answer sat when quantifiers are asserted with counterexample-based quantifier instantiation
option cbqiModel --cbqi-model bool :read-write :default true
 guide instantiations by model values for counterexample-based quantifier instantiation
option cbqiAll --cbqi-all bool :read-write :default false
 apply counterexample-based instantiation to all quantified formulas
option cbqiUseInfInt --cbqi-use-inf-int bool :read-write :default false
 use integer infinity for vts in counterexample-based quantifier instantiation
option cbqiUseInfReal --cbqi-use-inf-real bool :read-write :default false
 use real infinity for vts in counterexample-based quantifier instantiation
option cbqiPreRegInst --cbqi-prereg-inst bool :read-write :default false
  preregister ground instantiations in counterexample-based quantifier instantiation
option cbqiMinBounds --cbqi-min-bounds bool :default false
  use minimally constrained lower/upper bound for counterexample-based quantifier instantiation
option cbqiRoundUpLowerLia --cbqi-round-up-lia bool :default false
  round up integer lower bounds in substitutions for counterexample-based quantifier instantiation
option cbqiMidpoint --cbqi-midpoint bool :default false
  choose substitutions based on midpoints of lower and upper bounds for counterexample-based quantifier instantiation
option cbqiNopt --cbqi-nopt bool :default true
  non-optimal bounds for counterexample-based quantifier instantiation
option cbqiLitDepend --cbqi-lit-dep bool :default true
  dependency lemmas for quantifier alternation in counterexample-based quantifier instantiation
option cbqiInnermost --cbqi-innermost bool :read-write :default true
 only process innermost quantified formulas in counterexample-based quantifier instantiation
option cbqiNestedQE --cbqi-nested-qe bool :read-write :default false
 process nested quantified formulas with quantifier elimination in counterexample-based quantifier instantiation
 
option quantEpr --quant-epr bool :default false :read-write
 infer whether in effectively propositional fragment, use for cbqi
option quantEprMatching --quant-epr-match bool :default true
 use matching heuristics for EPR instantiation
 
### local theory extensions options 

option localTheoryExt --local-t-ext bool :default false
  do instantiation based on local theory extensions
option ltePartialInst --lte-partial-inst bool :default false
  partially instantiate local theory quantifiers
option lteRestrictInstClosure --lte-restrict-inst-closure bool :default false
  treat arguments of inst closure as restricted terms for instantiation
 
### reduction options

option quantAlphaEquiv --quant-alpha-equiv bool :default true
  infer alpha equivalence between quantified formulas
option macrosQuant --macros-quant bool :read-write :default false
 perform quantifiers macro expansion
option macrosQuantMode --macros-quant-mode=MODE CVC4::theory::quantifiers::MacrosQuantMode :default CVC4::theory::quantifiers::MACROS_QUANT_MODE_GROUND_UF :include "options/quantifiers_modes.h" :handler stringToMacrosQuantMode
 mode for quantifiers macro expansion
option quantDynamicSplit --quant-dsplit-mode=MODE CVC4::theory::quantifiers::QuantDSplitMode :read-write :default CVC4::theory::quantifiers::QUANT_DSPLIT_MODE_NONE :include "options/quantifiers_modes.h" :handler stringToQuantDSplitMode
 mode for dynamic quantifiers splitting
option quantAntiSkolem --quant-anti-skolem bool :read-write :default false
 perform anti-skolemization for quantified formulas

### recursive function options

#option funDefs --fun-defs bool :default false
#  enable specialized techniques for recursive function definitions
 
### e-unification options

option quantEqualityEngine --quant-ee bool :default false
  maintain congrunce closure over universal equalities
 
### proof options

option trackInstLemmas --track-inst-lemmas bool :read-write :default false
  track instantiation lemmas (for proofs, unsat cores, qe and synthesis minimization)
 
endmodule
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback