GCC Code Coverage Report
Directory: . Exec Total Coverage
File: build-coverage/src/options/options_public.cpp Lines: 2735 8022 34.1 %
Date: 2021-08-19 Branches: 3131 19431 16.1 %

Line Exec Source
1
/******************************************************************************
2
 * Top contributors (to current version):
3
 *   Tim King, Gereon Kremer, Andrew Reynolds
4
 *
5
 * This file is part of the cvc5 project.
6
 *
7
 * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
8
 * in the top-level source directory and their institutional affiliations.
9
 * All rights reserved.  See the file COPYING in the top-level source
10
 * directory for licensing information.
11
 * ****************************************************************************
12
 *
13
 * Global (command-line, set-option, ...) parameters for SMT.
14
 */
15
16
#include "options/options_public.h"
17
18
#if !defined(_BSD_SOURCE) && defined(__MINGW32__) && !defined(__MINGW64__)
19
// force use of optreset; mingw32 croaks on argv-switching otherwise
20
#include "base/cvc5config.h"
21
#define _BSD_SOURCE
22
#undef HAVE_DECL_OPTRESET
23
#define HAVE_DECL_OPTRESET 1
24
#define CVC5_IS_NOT_REALLY_BSD
25
#endif /* !_BSD_SOURCE && __MINGW32__ && !__MINGW64__ */
26
27
#ifdef __MINGW64__
28
extern int optreset;
29
#endif /* __MINGW64__ */
30
31
#include <getopt.h>
32
33
// clean up
34
#ifdef CVC5_IS_NOT_REALLY_BSD
35
#  undef _BSD_SOURCE
36
#endif /* CVC5_IS_NOT_REALLY_BSD */
37
38
#include "base/check.h"
39
#include "base/output.h"
40
#include "options/didyoumean.h"
41
#include "options/options_handler.h"
42
#include "options/options_listener.h"
43
#include "options/options.h"
44
#include "options/uf_options.h"
45
#include "options/arith_options.h"
46
#include "options/arrays_options.h"
47
#include "options/base_options.h"
48
#include "options/booleans_options.h"
49
#include "options/builtin_options.h"
50
#include "options/bv_options.h"
51
#include "options/datatypes_options.h"
52
#include "options/decision_options.h"
53
#include "options/expr_options.h"
54
#include "options/fp_options.h"
55
#include "options/main_options.h"
56
#include "options/parser_options.h"
57
#include "options/printer_options.h"
58
#include "options/proof_options.h"
59
#include "options/prop_options.h"
60
#include "options/quantifiers_options.h"
61
#include "options/sep_options.h"
62
#include "options/sets_options.h"
63
#include "options/smt_options.h"
64
#include "options/strings_options.h"
65
#include "options/theory_options.h"
66
#include "options/uf_options.h"
67
68
69
#include <cstring>
70
#include <iostream>
71
#include <limits>
72
73
namespace cvc5::options {
74
75
bool getUfHo(const Options& opts) { return opts.uf.ufHo; }
76
77
// clang-format off
78
9783
static const std::string mostCommonOptionsDescription =
79
    "\
80
Most commonly-used cvc5 options:\n"
81
"  --incremental | -i     enable incremental solving [*]\n"
82
"  --lang=LANG | --input-language=LANG | -L LANG\n"
83
"                         force input language (default is \"auto\"; see --lang\n"
84
"                         help)\n"
85
"  --output-lang=LANG | --output-language=LANG\n"
86
"                         force output language (default is \"auto\"; see\n"
87
"                         --output-lang help)\n"
88
"  --quiet | -q           decrease verbosity (may be repeated)\n"
89
"  --rlimit-per=N | --reproducible-resource-limit=N\n"
90
"                         set resource limit per query\n"
91
"  --rlimit=N             set resource limit\n"
92
"  --stats                give statistics on exit [*]\n"
93
"  --tlimit-per=MS        set time limit per query in milliseconds\n"
94
"  --tlimit=MS            set time limit in milliseconds of wall clock time\n"
95
"  --verbose | -v         increase verbosity (may be repeated)\n"
96
"  --copyright            show cvc5 copyright information\n"
97
"  --help | -h            full command line reference\n"
98
"  --seed=N | -s N        seed for random number generator\n"
99
"  --show-config          show cvc5 static configuration\n"
100
"  --version | -V         identify this cvc5 binary\n"
101
"  --strict-parsing       be less tolerant of non-conforming inputs [*]\n"
102
"  --dump-to=FILE         all dumping goes to FILE (instead of stdout)\n"
103
"  --dump=MODE            dump preprocessed assertions, etc., see --dump=help\n"
104
"  --produce-assertions   keep an assertions list (enables get-assertions\n"
105
"                         command) [*]\n"
106
"  --produce-models | -m  support the get-value and get-model commands [*]\n"
107
    ;
108
109
9783
static const std::string optionsDescription =
110
    mostCommonOptionsDescription + "\n\nAdditional cvc5 options:\n"
111
"\nFrom the Arithmetic Theory module:\n"
112
"  --approx-branch-depth=N\n"
113
"                         maximum branch depth the approximate solver is allowed\n"
114
"                         to take\n"
115
"  --arith-brab           whether to use simple rounding, similar to a unit-cube\n"
116
"                         test, for integers [*]\n"
117
"  --arith-cong-man       (experimental) whether to use the congruence manager\n"
118
"                         when the equality solver is enabled [*]\n"
119
"  --arith-eq-solver      whether to use the equality solver in the theory of\n"
120
"                         arithmetic [*]\n"
121
"  --arith-no-partial-fun do not use partial function semantics for arithmetic\n"
122
"                         (not SMT LIB compliant) [*]\n"
123
"  --arith-prop-clauses=N rows shorter than this are propagated as clauses\n"
124
"  --arith-prop=MODE      turns on arithmetic propagation (default is 'old', see\n"
125
"                         --arith-prop=help)\n"
126
"  --arith-rewrite-equalities\n"
127
"                         turns on the preprocessing rewrite turning equalities\n"
128
"                         into a conjunction of inequalities [*]\n"
129
"  --collect-pivot-stats  collect the pivot history [*]\n"
130
"  --cut-all-bounded      turns on the integer solving step of periodically\n"
131
"                         cutting all integer variables that have both upper and\n"
132
"                         lower bounds [*]\n"
133
"  --dio-decomps          let skolem variables for integer divisibility\n"
134
"                         constraints leak from the dio solver [*]\n"
135
"  --dio-repeat           handle dio solver constraints in mass or one at a time\n"
136
"                         [*]\n"
137
"  --dio-solver           turns on Linear Diophantine Equation solver (Griggio,\n"
138
"                         JSAT 2012) [*]\n"
139
"  --dio-turns=N          turns in a row dio solver cutting gets\n"
140
"  --error-selection-rule=RULE\n"
141
"                         change the pivot rule for the basic variable (default\n"
142
"                         is 'min', see --pivot-rule help)\n"
143
"  --fc-penalties         turns on degenerate pivot penalties [*]\n"
144
"  --heuristic-pivots=N   the number of times to apply the heuristic pivot rule;\n"
145
"                         if N < 0, this defaults to the number of variables; if\n"
146
"                         this is unset, this is tuned by the logic selection\n"
147
"  --lemmas-on-replay-failure\n"
148
"                         attempt to use external lemmas if approximate solve\n"
149
"                         integer failed [*]\n"
150
"  --maxCutsInContext=N   maximum cuts in a given context before signalling a\n"
151
"                         restart\n"
152
"  --miplib-trick         turns on the preprocessing step of attempting to infer\n"
153
"                         bounds on miplib problems [*]\n"
154
"  --miplib-trick-subs=N  do substitution for miplib 'tmp' vars if defined in <=\n"
155
"                         N eliminated vars\n"
156
"  --new-prop             use the new row propagation system [*]\n"
157
"  --nl-cad               whether to use the cylindrical algebraic decomposition\n"
158
"                         solver for non-linear arithmetic [*]\n"
159
"  --nl-cad-initial       whether to use the linear model as initial guess for\n"
160
"                         the cylindrical algebraic decomposition solver [*]\n"
161
"  --nl-cad-lift=MODE     choose the CAD lifting mode (EXPERTS only)\n"
162
"  --nl-cad-proj=MODE     choose the CAD projection operator (EXPERTS only)\n"
163
"  --nl-ext-ent-conf      check for entailed conflicts in non-linear solver [*]\n"
164
"  --nl-ext-factor        use factoring inference in non-linear incremental\n"
165
"                         linearization solver [*]\n"
166
"  --nl-ext-inc-prec      whether to increment the precision for irrational\n"
167
"                         function constraints [*]\n"
168
"  --nl-ext-purify        purify non-linear terms at preprocess [*]\n"
169
"  --nl-ext-rbound        use resolution-style inference for inferring new bounds\n"
170
"                         in non-linear incremental linearization solver [*]\n"
171
"  --nl-ext-rewrite       do context-dependent simplification based on rewrites\n"
172
"                         in non-linear solver [*]\n"
173
"  --nl-ext-split-zero    initial splits on zero for all variables [*]\n"
174
"  --nl-ext-tf-taylor-deg=N\n"
175
"                         initial degree of polynomials for Taylor approximation\n"
176
"  --nl-ext-tf-tplanes    use non-terminating tangent plane strategy for\n"
177
"                         transcendental functions for non-linear incremental\n"
178
"                         linearization solver [*]\n"
179
"  --nl-ext-tplanes       use non-terminating tangent plane strategy for\n"
180
"                         non-linear incremental linearization solver [*]\n"
181
"  --nl-ext-tplanes-interleave\n"
182
"                         interleave tangent plane strategy for non-linear\n"
183
"                         incremental linearization solver [*]\n"
184
"  --nl-ext=MODE          incremental linearization approach to non-linear\n"
185
"  --nl-icp               whether to use ICP-style propagations for non-linear\n"
186
"                         arithmetic [*]\n"
187
"  --nl-rlv=MODE          choose mode for using relevance of assertions in\n"
188
"                         non-linear arithmetic\n"
189
"  --pb-rewrites          apply pseudo boolean rewrites [*]\n"
190
"  --pivot-threshold=N    sets the number of pivots using --pivot-rule per basic\n"
191
"                         variable per simplex instance before using variable\n"
192
"                         order\n"
193
"  --pp-assert-max-sub-size=N\n"
194
"                         threshold for substituting an equality in ppAssert\n"
195
"  --prop-row-length=N    sets the maximum row length to be used in propagation\n"
196
"  --replay-early-close-depth=N\n"
197
"                         multiples of the depths to try to close the approx log\n"
198
"                         eagerly\n"
199
"  --replay-failure-penalty=N\n"
200
"                         number of solve integer attempts to skips after a\n"
201
"                         numeric failure\n"
202
"  --replay-lemma-reject-cut=N\n"
203
"                         maximum complexity of any coefficient while outputting\n"
204
"                         replaying cut lemmas\n"
205
"  --replay-num-err-penalty=N\n"
206
"                         number of solve integer attempts to skips after a\n"
207
"                         numeric failure\n"
208
"  --replay-reject-cut=N  maximum complexity of any coefficient while replaying\n"
209
"                         cuts\n"
210
"  --replay-soi-major-threshold-pen=N\n"
211
"                         threshold for a major tolerance failure by the\n"
212
"                         approximate solver\n"
213
"  --replay-soi-major-threshold=T\n"
214
"                         threshold for a major tolerance failure by the\n"
215
"                         approximate solver\n"
216
"  --replay-soi-minor-threshold-pen=N\n"
217
"                         threshold for a minor tolerance failure by the\n"
218
"                         approximate solver\n"
219
"  --replay-soi-minor-threshold=T\n"
220
"                         threshold for a minor tolerance failure by the\n"
221
"                         approximate solver\n"
222
"  --restrict-pivots      have a pivot cap for simplex at effort levels below\n"
223
"                         fullEffort [*]\n"
224
"  --revert-arith-models-on-unsat\n"
225
"                         revert the arithmetic model to a known safe model on\n"
226
"                         unsat if one is cached [*]\n"
227
"  --rr-turns=N           round robin turn\n"
228
"  --se-solve-int         attempt to use the approximate solve integer method on\n"
229
"                         standard effort [*]\n"
230
"  --simplex-check-period=N\n"
231
"                         the number of pivots to do in simplex before rechecking\n"
232
"                         for a conflict on all variables\n"
233
"  --soi-qe               use quick explain to minimize the sum of infeasibility\n"
234
"                         conflicts [*]\n"
235
"  --standard-effort-variable-order-pivots=N\n"
236
"                         limits the number of pivots in a single invocation of\n"
237
"                         check() at a non-full effort level using Bland's pivot\n"
238
"                         rule (EXPERTS only)\n"
239
"  --unate-lemmas=MODE    determines which lemmas to add before solving (default\n"
240
"                         is 'all', see --unate-lemmas=help)\n"
241
"  --use-approx           attempt to use an approximate solver [*]\n"
242
"  --use-fcsimplex        use focusing and converging simplex (FMCAD 2013\n"
243
"                         submission) [*]\n"
244
"  --use-soi              use sum of infeasibility simplex (FMCAD 2013\n"
245
"                         submission) [*]\n"
246
"\nFrom the Arrays Theory module:\n"
247
"  --arrays-config=N      set different array option configurations - for\n"
248
"                         developers only\n"
249
"  --arrays-eager-index   turn on eager index splitting for generated array\n"
250
"                         lemmas [*]\n"
251
"  --arrays-eager-lemmas  turn on eager lemma generation for arrays [*]\n"
252
"  --arrays-exp           enable experimental features in the theory of arrays\n"
253
"                         [*]\n"
254
"  --arrays-model-based   turn on model-based array solver [*]\n"
255
"  --arrays-optimize-linear\n"
256
"                         turn on optimization for linear array terms (see de\n"
257
"                         Moura FMCAD 09 arrays paper) [*]\n"
258
"  --arrays-prop=N        propagation effort for arrays: 0 is none, 1 is some, 2\n"
259
"                         is full\n"
260
"  --arrays-reduce-sharing\n"
261
"                         use model information to reduce size of care graph for\n"
262
"                         arrays [*]\n"
263
"  --arrays-weak-equiv    use algorithm from Christ/Hoenicke (SMT 2014) [*]\n"
264
"\nFrom the Base module:\n"
265
"  --debug=TAG | -d TAG   debug something (e.g. -d arith), can repeat\n"
266
"  --output=TAG | -o TAG  Enable output tag.\n"
267
"  --parse-only           exit after parsing input [*]\n"
268
"  --preprocess-only      exit after preprocessing input [*]\n"
269
"  --print-success        print the \"success\" output required of SMT-LIBv2 [*]\n"
270
"  --rweight=VAL=N        set a single resource weight (EXPERTS only)\n"
271
"  --stats-all            print unchanged (defaulted) statistics as well (EXPERTS\n"
272
"                         only) [*]\n"
273
"  --stats-every-query    in incremental mode, print stats after every\n"
274
"                         satisfiability or validity query [*]\n"
275
"  --stats-expert         print expert (non-public) statistics as well (EXPERTS\n"
276
"                         only) [*]\n"
277
"  --trace=TAG | -t TAG   trace something (e.g. -t pushpop), can repeat\n"
278
"  --verbosity=N          the verbosity level of cvc5\n"
279
"\nFrom the Bitvector Theory module:\n"
280
"  --bitblast-aig         bitblast by first converting to AIG (implies\n"
281
"                         --bitblast=eager) [*]\n"
282
"  --bitblast=MODE        choose bitblasting mode, see --bitblast=help\n"
283
"  --bitwise-eq           lift equivalence with one-bit bit-vectors to be boolean\n"
284
"                         operations [*]\n"
285
"  --bool-to-bv=MODE      convert booleans to bit-vectors of size 1 at various\n"
286
"                         levels of aggressiveness, see --bool-to-bv=help\n"
287
"  --bv-aig-simp=COMMAND  abc command to run AIG simplifications (implies\n"
288
"                         --bitblast-aig, default is \"balance;drw\") (EXPERTS\n"
289
"                         only)\n"
290
"  --bv-alg-extf          algebraic inferences for extended functions [*]\n"
291
"  --bv-algebraic-budget=N\n"
292
"                         the budget allowed for the algebraic solver in number\n"
293
"                         of SAT conflicts (EXPERTS only)\n"
294
"  --bv-algebraic-solver  turn on experimental algebraic solver for the\n"
295
"                         bit-vector theory (only if --bv-solver=layered) [*]\n"
296
"  --bv-assert-input      assert input assertions on user-level 0 instead of\n"
297
"                         assuming them in the bit-vector SAT solver [*]\n"
298
"  --bv-eager-explanations\n"
299
"                         compute bit-blasting propagation explanations eagerly\n"
300
"                         (EXPERTS only) [*]\n"
301
"  --bv-eq-solver         use the equality engine for the bit-vector theory (only\n"
302
"                         if --bv-solver=layered) [*]\n"
303
"  --bv-extract-arith     enable rewrite pushing extract [i:0] over arithmetic\n"
304
"                         operations (can blow up) (EXPERTS only) [*]\n"
305
"  --bv-gauss-elim        simplify formula via Gaussian Elimination if applicable\n"
306
"                         (EXPERTS only) [*]\n"
307
"  --bv-inequality-solver turn on the inequality solver for the bit-vector theory\n"
308
"                         (only if --bv-solver=layered) [*]\n"
309
"  --bv-intro-pow2        introduce bitvector powers of two as a preprocessing\n"
310
"                         pass (EXPERTS only) [*]\n"
311
"  --bv-num-func=N        number of function symbols in conflicts that are\n"
312
"                         generalized (EXPERTS only)\n"
313
"  --bv-print-consts-as-indexed-symbols\n"
314
"                         print bit-vector constants in decimal (e.g. (_ bv1 4))\n"
315
"                         instead of binary (e.g. #b0001), applies to SMT-LIB 2.x\n"
316
"                         [*]\n"
317
"  --bv-propagate         use bit-vector propagation in the bit-blaster [*]\n"
318
"  --bv-quick-xplain      minimize bv conflicts using the QuickXplain algorithm\n"
319
"                         (EXPERTS only) [*]\n"
320
"  --bv-sat-solver=MODE   choose which sat solver to use, see\n"
321
"                         --bv-sat-solver=help (EXPERTS only)\n"
322
"  --bv-solver=MODE       choose bit-vector solver, see --bv-solver=help\n"
323
"  --bv-to-bool           lift bit-vectors of size 1 to booleans when possible\n"
324
"                         [*]\n"
325
"\nFrom the Datatypes Theory module:\n"
326
"  --cdt-bisimilar        do bisimilarity check for co-datatypes [*]\n"
327
"  --dt-binary-split      do binary splits for datatype constructor types [*]\n"
328
"  --dt-blast-splits      when applicable, blast splitting lemmas for all\n"
329
"                         variables at once [*]\n"
330
"  --dt-cyclic            do cyclicity check for datatypes [*]\n"
331
"  --dt-force-assignment  force the datatypes solver to give specific values to\n"
332
"                         all datatypes terms before answering sat [*]\n"
333
"  --dt-infer-as-lemmas   always send lemmas out instead of making internal\n"
334
"                         inferences [*]\n"
335
"  --dt-nested-rec        allow nested recursion in datatype definitions [*]\n"
336
"  --dt-polite-optimize   turn on optimization for polite combination [*]\n"
337
"  --dt-rewrite-error-sel rewrite incorrectly applied selectors to arbitrary\n"
338
"                         ground term (EXPERTS only) [*]\n"
339
"  --dt-share-sel         internally use shared selectors across multiple\n"
340
"                         constructors [*]\n"
341
"  --sygus-abort-size=N   tells enumerative sygus to only consider solutions up\n"
342
"                         to term size N (-1 == no limit, default)\n"
343
"  --sygus-fair-max       use max instead of sum for multi-function sygus\n"
344
"                         conjectures [*]\n"
345
"  --sygus-fair=MODE      if and how to apply fairness for sygus\n"
346
"  --sygus-sym-break      simple sygus symmetry breaking lemmas [*]\n"
347
"  --sygus-sym-break-agg  use aggressive checks for simple sygus symmetry\n"
348
"                         breaking lemmas [*]\n"
349
"  --sygus-sym-break-dynamic\n"
350
"                         dynamic sygus symmetry breaking lemmas [*]\n"
351
"  --sygus-sym-break-lazy lazily add symmetry breaking lemmas for terms [*]\n"
352
"  --sygus-sym-break-pbe  sygus symmetry breaking lemmas based on pbe conjectures\n"
353
"                         [*]\n"
354
"  --sygus-sym-break-rlv  add relevancy conditions to symmetry breaking lemmas\n"
355
"                         [*]\n"
356
"\nFrom the Decision Heuristics module:\n"
357
"  --decision-random-weight=N\n"
358
"                         assign random weights to nodes between 0 and N-1 (0:\n"
359
"                         disable) (EXPERTS only)\n"
360
"  --decision-threshold=N ignore all nodes greater than threshold in first\n"
361
"                         attempt to pick decision (EXPERTS only)\n"
362
"  --decision-use-weight  use the weight nodes (locally, by looking at children)\n"
363
"                         to direct recursive search (EXPERTS only) [*]\n"
364
"  --decision-weight-internal=HOW\n"
365
"                         compute weights of internal nodes using children: off,\n"
366
"                         max, sum, usr1 (EXPERTS only)\n"
367
"  --decision=MODE | --decision-mode=MODE\n"
368
"                         choose decision mode, see --decision=help\n"
369
"  --jh-rlv-order         maintain activity-based ordering for decision\n"
370
"                         justification heuristic (EXPERTS only) [*]\n"
371
"  --jh-skolem-rlv=MODE   policy for when to consider skolem definitions relevant\n"
372
"                         in justification heuristic (EXPERTS only)\n"
373
"  --jh-skolem=MODE       policy for when to satisfy skolem definitions in\n"
374
"                         justification heuristic (EXPERTS only)\n"
375
"\nFrom the Expression module:\n"
376
"  --dag-thresh=N         dagify common subexprs appearing > N times (1 ==\n"
377
"                         default, 0 == don't dagify)\n"
378
"  --expr-depth=N         print exprs to depth N (0 == default, -1 == no limit)\n"
379
"  --type-checking        type check expressions [*]\n"
380
"\nFrom the Floating-Point module:\n"
381
"  --fp-exp               Allow floating-point sorts of all sizes, rather than\n"
382
"                         only Float32 (8/24) or Float64 (11/53) (experimental)\n"
383
"                         [*]\n"
384
"  --fp-lazy-wb           Enable lazier word-blasting (on preNotifyFact instead\n"
385
"                         of registerTerm) [*]\n"
386
"\nFrom the Driver module:\n"
387
"  --dump-instantiations  output instantiations of quantified formulas after\n"
388
"                         every UNSAT/VALID response [*]\n"
389
"  --dump-instantiations-debug\n"
390
"                         output instantiations of quantified formulas after\n"
391
"                         every UNSAT/VALID response, with debug information [*]\n"
392
"  --dump-models          output models after every SAT/INVALID/UNKNOWN response\n"
393
"                         [*]\n"
394
"  --dump-proofs          output proofs after every UNSAT/VALID response [*]\n"
395
"  --dump-unsat-cores     output unsat cores after every UNSAT/VALID response [*]\n"
396
"  --dump-unsat-cores-full\n"
397
"                         dump the full unsat core, including unlabeled\n"
398
"                         assertions [*]\n"
399
"  --early-exit           do not run destructors at exit; default on except in\n"
400
"                         debug builds (EXPERTS only) [*]\n"
401
"  --force-no-limit-cpu-while-dump\n"
402
"                         Force no CPU limit when dumping models and proofs [*]\n"
403
"  --interactive          force interactive/non-interactive mode [*]\n"
404
"  --segv-spin            spin on segfault/other crash waiting for gdb [*]\n"
405
"  --show-debug-tags      show all available tags for debugging\n"
406
"  --show-trace-tags      show all available tags for tracing\n"
407
"\nFrom the Parser module:\n"
408
"  --force-logic=LOGIC    set the logic, and override all further user attempts\n"
409
"                         to change it (EXPERTS only)\n"
410
"  --global-declarations  force all declarations and definitions to be global [*]\n"
411
"  --mmap                 memory map file input [*]\n"
412
"  --semantic-checks      enable semantic checks, including type checks [*]\n"
413
"\nFrom the Printing module:\n"
414
"  --flatten-ho-chains    print (binary) application chains in a flattened way,\n"
415
"                         e.g. (a b c) rather than ((a b) c) [*]\n"
416
"  --inst-format=MODE     print format mode for instantiations, see\n"
417
"                         --inst-format=help\n"
418
"  --model-format=MODE    print format mode for models, see --model-format=help\n"
419
"  --print-inst-full      print instantiations for formulas that do not have\n"
420
"                         given identifiers [*]\n"
421
"  --print-inst=MODE      print format for printing instantiations\n"
422
"\nFrom the Proof module:\n"
423
"  --proof-eager-checking check proofs eagerly with proof for local debugging [*]\n"
424
"  --proof-format-mode=MODE\n"
425
"                         select language of proof output\n"
426
"  --proof-granularity=MODE\n"
427
"                         modes for proof granularity\n"
428
"  --proof-pedantic=N     assertion failure for any incorrect rule application or\n"
429
"                         untrusted lemma having pedantic level <=N with proof\n"
430
"  --proof-print-conclusion\n"
431
"                         Print conclusion of proof steps when printing AST [*]\n"
432
"\nFrom the SAT Layer module:\n"
433
"  --minisat-dump-dimacs  instead of solving minisat dumps the asserted clauses\n"
434
"                         in Dimacs format [*]\n"
435
"  --minisat-elimination  use Minisat elimination [*]\n"
436
"  --random-freq=P | --random-frequency=P\n"
437
"                         sets the frequency of random decisions in the sat\n"
438
"                         solver (P=0.0 by default)\n"
439
"  --random-seed=S        sets the random seed for the sat solver\n"
440
"  --refine-conflicts     refine theory conflict clauses (default false) [*]\n"
441
"  --restart-int-base=N   sets the base restart interval for the sat solver (N=25\n"
442
"                         by default)\n"
443
"  --restart-int-inc=F    sets the restart interval increase factor for the sat\n"
444
"                         solver (F=3.0 by default)\n"
445
"\nFrom the Quantifiers module:\n"
446
"  --ag-miniscope-quant   perform aggressive miniscoping for quantifiers [*]\n"
447
"  --cegis-sample=MODE    mode for using samples in the counterexample-guided\n"
448
"                         inductive synthesis loop\n"
449
"  --cegqi                turns on counterexample-based quantifier instantiation\n"
450
"                         [*]\n"
451
"  --cegqi-all            apply counterexample-based instantiation to all\n"
452
"                         quantified formulas [*]\n"
453
"  --cegqi-bv             use word-level inversion approach for\n"
454
"                         counterexample-guided quantifier instantiation for\n"
455
"                         bit-vectors [*]\n"
456
"  --cegqi-bv-concat-inv  compute inverse for concat over equalities rather than\n"
457
"                         producing an invertibility condition [*]\n"
458
"  --cegqi-bv-ineq=MODE   choose mode for handling bit-vector inequalities with\n"
459
"                         counterexample-guided instantiation\n"
460
"  --cegqi-bv-interleave-value\n"
461
"                         interleave model value instantiation with word-level\n"
462
"                         inversion approach [*]\n"
463
"  --cegqi-bv-linear      linearize adder chains for variables [*]\n"
464
"  --cegqi-bv-rm-extract  replaces extract terms with variables for\n"
465
"                         counterexample-guided instantiation for bit-vectors [*]\n"
466
"  --cegqi-bv-solve-nl    try to solve non-linear bv literals using model value\n"
467
"                         projections [*]\n"
468
"  --cegqi-full           turns on full effort counterexample-based quantifier\n"
469
"                         instantiation, which may resort to model-value\n"
470
"                         instantiation [*]\n"
471
"  --cegqi-innermost      only process innermost quantified formulas in\n"
472
"                         counterexample-based quantifier instantiation [*]\n"
473
"  --cegqi-midpoint       choose substitutions based on midpoints of lower and\n"
474
"                         upper bounds for counterexample-based quantifier\n"
475
"                         instantiation [*]\n"
476
"  --cegqi-min-bounds     use minimally constrained lower/upper bound for\n"
477
"                         counterexample-based quantifier instantiation [*]\n"
478
"  --cegqi-model          guide instantiations by model values for\n"
479
"                         counterexample-based quantifier instantiation [*]\n"
480
"  --cegqi-multi-inst     when applicable, do multi instantiations per quantifier\n"
481
"                         per round in counterexample-based quantifier\n"
482
"                         instantiation [*]\n"
483
"  --cegqi-nested-qe      process nested quantified formulas with quantifier\n"
484
"                         elimination in counterexample-based quantifier\n"
485
"                         instantiation [*]\n"
486
"  --cegqi-nopt           non-optimal bounds for counterexample-based quantifier\n"
487
"                         instantiation [*]\n"
488
"  --cegqi-repeat-lit     solve literals more than once in counterexample-based\n"
489
"                         quantifier instantiation [*]\n"
490
"  --cegqi-round-up-lia   round up integer lower bounds in substitutions for\n"
491
"                         counterexample-based quantifier instantiation [*]\n"
492
"  --cegqi-sat            answer sat when quantifiers are asserted with\n"
493
"                         counterexample-based quantifier instantiation [*]\n"
494
"  --cegqi-use-inf-int    use integer infinity for vts in counterexample-based\n"
495
"                         quantifier instantiation [*]\n"
496
"  --cegqi-use-inf-real   use real infinity for vts in counterexample-based\n"
497
"                         quantifier instantiation [*]\n"
498
"  --cond-var-split-agg-quant\n"
499
"                         aggressive split quantified formulas that lead to\n"
500
"                         variable eliminations [*]\n"
501
"  --cond-var-split-quant split quantified formulas that lead to variable\n"
502
"                         eliminations [*]\n"
503
"  --conjecture-filter-active-terms\n"
504
"                         filter based on active terms [*]\n"
505
"  --conjecture-filter-canonical\n"
506
"                         filter based on canonicity [*]\n"
507
"  --conjecture-filter-model\n"
508
"                         filter based on model [*]\n"
509
"  --conjecture-gen       generate candidate conjectures for inductive proofs [*]\n"
510
"  --conjecture-gen-gt-enum=N\n"
511
"                         number of ground terms to generate for model filtering\n"
512
"  --conjecture-gen-max-depth=N\n"
513
"                         maximum depth of terms to consider for conjectures\n"
514
"  --conjecture-gen-per-round=N\n"
515
"                         number of conjectures to generate per instantiation\n"
516
"                         round\n"
517
"  --conjecture-gen-uee-intro\n"
518
"                         more aggressive merging for universal equality engine,\n"
519
"                         introduces terms [*]\n"
520
"  --conjecture-no-filter do not filter conjectures [*]\n"
521
"  --dt-stc-ind           apply strengthening for existential quantification over\n"
522
"                         datatypes based on structural induction [*]\n"
523
"  --dt-var-exp-quant     expand datatype variables bound to one constructor in\n"
524
"                         quantifiers [*]\n"
525
"  --e-matching           whether to do heuristic E-matching [*]\n"
526
"  --elim-taut-quant      eliminate tautological disjuncts of quantified formulas\n"
527
"                         [*]\n"
528
"  --ext-rewrite-quant    apply extended rewriting to bodies of quantified\n"
529
"                         formulas [*]\n"
530
"  --finite-model-find    use finite model finding heuristic for quantifier\n"
531
"                         instantiation [*]\n"
532
"  --fmf-bound            finite model finding on bounded quantification [*]\n"
533
"  --fmf-bound-int        finite model finding on bounded integer quantification\n"
534
"                         [*]\n"
535
"  --fmf-bound-lazy       enforce bounds for bounded quantification lazily via\n"
536
"                         use of proxy variables [*]\n"
537
"  --fmf-fmc-simple       simple models in full model check for finite model\n"
538
"                         finding [*]\n"
539
"  --fmf-fresh-dc         use fresh distinguished representative when applying\n"
540
"                         Inst-Gen techniques [*]\n"
541
"  --fmf-fun              find models for recursively defined functions, assumes\n"
542
"                         functions are admissible [*]\n"
543
"  --fmf-fun-rlv          find models for recursively defined functions, assumes\n"
544
"                         functions are admissible, allows empty type when\n"
545
"                         function is irrelevant [*]\n"
546
"  --fmf-inst-engine      use instantiation engine in conjunction with finite\n"
547
"                         model finding [*]\n"
548
"  --fmf-type-completion-thresh=N\n"
549
"                         the maximum cardinality of an interpreted type for\n"
550
"                         which exhaustive enumeration in finite model finding is\n"
551
"                         attempted\n"
552
"  --fs-interleave        interleave enumerative instantiation with other\n"
553
"                         techniques [*]\n"
554
"  --fs-stratify          stratify effort levels in enumerative instantiation,\n"
555
"                         which favors speed over fairness [*]\n"
556
"  --fs-sum               enumerating tuples of quantifiers by increasing the sum\n"
557
"                         of indices, rather than the maximum [*]\n"
558
"  --full-saturate-quant  enumerative instantiation: instantiate with ground\n"
559
"                         terms from relevant domain, then arbitrary ground terms\n"
560
"                         before answering unknown [*]\n"
561
"  --full-saturate-quant-limit=N\n"
562
"                         maximum number of rounds of enumerative instantiation\n"
563
"                         to apply (-1 means no limit)\n"
564
"  --full-saturate-quant-rd\n"
565
"                         whether to use relevant domain first for enumerative\n"
566
"                         instantiation strategy [*]\n"
567
"  --global-negate        do global negation of input formula [*]\n"
568
"  --ho-elim              eagerly eliminate higher-order constraints [*]\n"
569
"  --ho-elim-store-ax     use store axiom during ho-elim [*]\n"
570
"  --ho-matching          do higher-order matching algorithm for triggers with\n"
571
"                         variable operators [*]\n"
572
"  --ho-matching-var-priority\n"
573
"                         give priority to variable arguments over constant\n"
574
"                         arguments [*]\n"
575
"  --ho-merge-term-db     merge term indices modulo equality [*]\n"
576
"  --increment-triggers   generate additional triggers as needed during search\n"
577
"                         [*]\n"
578
"  --inst-level-input-only\n"
579
"                         only input terms are assigned instantiation level zero\n"
580
"                         [*]\n"
581
"  --inst-max-level=N     maximum inst level of terms used to instantiate\n"
582
"                         quantified formulas with (-1 == no limit, default)\n"
583
"  --inst-max-rounds=N    maximum number of instantiation rounds (-1 == no limit,\n"
584
"                         default)\n"
585
"  --inst-no-entail       do not consider instances of quantified formulas that\n"
586
"                         are currently entailed [*]\n"
587
"  --inst-when-phase=N    instantiation rounds quantifiers takes (>=1) before\n"
588
"                         allowing theory combination to happen\n"
589
"  --inst-when-strict-interleave\n"
590
"                         ensure theory combination and standard quantifier\n"
591
"                         effort strategies take turns [*]\n"
592
"  --inst-when-tc-first   allow theory combination to happen once initially,\n"
593
"                         before quantifier strategies are run [*]\n"
594
"  --inst-when=MODE       when to apply instantiation\n"
595
"  --int-wf-ind           apply strengthening for integers based on well-founded\n"
596
"                         induction [*]\n"
597
"  --ite-dtt-split-quant  split ites with dt testers as conditions [*]\n"
598
"  --ite-lift-quant=MODE  ite lifting mode for quantified formulas\n"
599
"  --literal-matching=MODE\n"
600
"                         choose literal matching mode\n"
601
"  --macros-quant         perform quantifiers macro expansion [*]\n"
602
"  --macros-quant-mode=MODE\n"
603
"                         mode for quantifiers macro expansion\n"
604
"  --mbqi-interleave      interleave model-based quantifier instantiation with\n"
605
"                         other techniques [*]\n"
606
"  --mbqi-one-inst-per-round\n"
607
"                         only add one instantiation per quantifier per round for\n"
608
"                         mbqi [*]\n"
609
"  --mbqi=MODE            choose mode for model-based quantifier instantiation\n"
610
"  --miniscope-quant      miniscope quantifiers [*]\n"
611
"  --miniscope-quant-fv   miniscope quantifiers for ground subformulas [*]\n"
612
"  --multi-trigger-cache  caching version of multi triggers [*]\n"
613
"  --multi-trigger-linear implementation of multi triggers where maximum number\n"
614
"                         of instantiations is linear wrt number of ground terms\n"
615
"                         [*]\n"
616
"  --multi-trigger-priority\n"
617
"                         only try multi triggers if single triggers give no\n"
618
"                         instantiations [*]\n"
619
"  --multi-trigger-when-single\n"
620
"                         select multi triggers when single triggers exist [*]\n"
621
"  --partial-triggers     use triggers that do not contain all free variables [*]\n"
622
"  --pool-inst            pool-based instantiation: instantiate with ground terms\n"
623
"                         occurring in user-specified pools [*]\n"
624
"  --pre-skolem-quant     apply skolemization eagerly to bodies of quantified\n"
625
"                         formulas [*]\n"
626
"  --pre-skolem-quant-agg apply skolemization to quantified formulas aggressively\n"
627
"                         [*]\n"
628
"  --pre-skolem-quant-nested\n"
629
"                         apply skolemization to nested quantified formulas [*]\n"
630
"  --prenex-quant-user    prenex quantified formulas with user patterns [*]\n"
631
"  --prenex-quant=MODE    prenex mode for quantified formulas\n"
632
"  --purify-triggers      purify triggers, e.g. f( x+1 ) becomes f( y ), x mapsto\n"
633
"                         y-1 [*]\n"
634
"  --qcf-all-conflict     add all available conflicting instances during\n"
635
"                         conflict-based instantiation [*]\n"
636
"  --qcf-eager-check-rd   optimization, eagerly check relevant domain of matched\n"
637
"                         position [*]\n"
638
"  --qcf-eager-test       optimization, test qcf instances eagerly [*]\n"
639
"  --qcf-nested-conflict  consider conflicts for nested quantifiers [*]\n"
640
"  --qcf-skip-rd          optimization, skip instances based on possibly\n"
641
"                         irrelevant portions of quantified formulas [*]\n"
642
"  --qcf-tconstraint      enable entailment checks for t-constraints in qcf\n"
643
"                         algorithm [*]\n"
644
"  --qcf-vo-exp           qcf experimental variable ordering [*]\n"
645
"  --quant-alpha-equiv    infer alpha equivalence between quantified formulas [*]\n"
646
"  --quant-cf             enable conflict find mechanism for quantifiers [*]\n"
647
"  --quant-cf-mode=MODE   what effort to apply conflict find mechanism\n"
648
"  --quant-cf-when=MODE   when to invoke conflict find mechanism for quantifiers\n"
649
"  --quant-dsplit-mode=MODE\n"
650
"                         mode for dynamic quantifiers splitting\n"
651
"  --quant-fun-wd         assume that function defined by quantifiers are well\n"
652
"                         defined [*]\n"
653
"  --quant-ind            use all available techniques for inductive reasoning\n"
654
"                         [*]\n"
655
"  --quant-rep-mode=MODE  selection mode for representatives in quantifiers\n"
656
"                         engine\n"
657
"  --quant-split          apply splitting to quantified formulas based on\n"
658
"                         variable disjoint disjuncts [*]\n"
659
"  --register-quant-body-terms\n"
660
"                         consider ground terms within bodies of quantified\n"
661
"                         formulas for matching [*]\n"
662
"  --relational-triggers  choose relational triggers such as x = f(y), x >= f(y)\n"
663
"                         [*]\n"
664
"  --relevant-triggers    prefer triggers that are more relevant based on SInE\n"
665
"                         style analysis [*]\n"
666
"  --sygus                use sygus solver (default is true for sygus inputs) [*]\n"
667
"  --sygus-active-gen-cfactor=N\n"
668
"                         the branching factor for the number of interpreted\n"
669
"                         constants to consider for each size when using\n"
670
"                         --sygus-active-gen=enum\n"
671
"  --sygus-active-gen=MODE\n"
672
"                         mode for actively-generated sygus enumerators\n"
673
"  --sygus-add-const-grammar\n"
674
"                         statically add constants appearing in conjecture to\n"
675
"                         grammars [*]\n"
676
"  --sygus-arg-relevant   static inference techniques for computing whether\n"
677
"                         arguments of functions-to-synthesize are relevant [*]\n"
678
"  --sygus-auto-unfold    enable approach which automatically unfolds transition\n"
679
"                         systems for directly solving invariant synthesis\n"
680
"                         problems [*]\n"
681
"  --sygus-bool-ite-return-const\n"
682
"                         Only use Boolean constants for return values in\n"
683
"                         unification-based function synthesis [*]\n"
684
"  --sygus-core-connective\n"
685
"                         use unsat core analysis to construct Boolean connective\n"
686
"                         to sygus conjectures [*]\n"
687
"  --sygus-crepair-abort  abort if constant repair techniques are not applicable\n"
688
"                         [*]\n"
689
"  --sygus-eval-opt       use optimized approach for evaluation in sygus [*]\n"
690
"  --sygus-eval-unfold    do unfolding of sygus evaluation functions [*]\n"
691
"  --sygus-eval-unfold-bool\n"
692
"                         do unfolding of Boolean evaluation functions that\n"
693
"                         appear in refinement lemmas [*]\n"
694
"  --sygus-expr-miner-check-timeout=N\n"
695
"                         timeout (in milliseconds) for satisfiability checks in\n"
696
"                         expression miners\n"
697
"  --sygus-ext-rew        use extended rewriter for sygus [*]\n"
698
"  --sygus-filter-sol-rev compute backwards filtering to compute whether previous\n"
699
"                         solutions are filtered based on later ones (EXPERTS\n"
700
"                         only) [*]\n"
701
"  --sygus-filter-sol=MODE\n"
702
"                         mode for filtering sygus solutions\n"
703
"  --sygus-grammar-cons=MODE\n"
704
"                         mode for SyGuS grammar construction\n"
705
"  --sygus-grammar-norm   statically normalize sygus grammars based on flattening\n"
706
"                         (linearization) [*]\n"
707
"  --sygus-inference      attempt to preprocess arbitrary inputs to sygus\n"
708
"                         conjectures [*]\n"
709
"  --sygus-inst           Enable SyGuS instantiation quantifiers module [*]\n"
710
"  --sygus-inst-mode=MODE select instantiation lemma mode\n"
711
"  --sygus-inst-scope=MODE\n"
712
"                         select scope of ground terms\n"
713
"  --sygus-inst-term-sel=MODE\n"
714
"                         granularity for ground terms\n"
715
"  --sygus-inv-templ-when-sg\n"
716
"                         use invariant templates (with solution reconstruction)\n"
717
"                         for syntax guided problems [*]\n"
718
"  --sygus-inv-templ=MODE template mode for sygus invariant synthesis (weaken\n"
719
"                         pre-condition, strengthen post-condition, or none)\n"
720
"  --sygus-min-grammar    statically minimize sygus grammars [*]\n"
721
"  --sygus-pbe            enable approach which unifies conditional solutions,\n"
722
"                         specialized for programming-by-examples (pbe)\n"
723
"                         conjectures [*]\n"
724
"  --sygus-pbe-multi-fair when using multiple enumerators, ensure that we only\n"
725
"                         register value of minimial term size [*]\n"
726
"  --sygus-pbe-multi-fair-diff=N\n"
727
"                         when using multiple enumerators, ensure that we only\n"
728
"                         register values of minimial term size plus this value\n"
729
"                         (default 0)\n"
730
"  --sygus-qe-preproc     use quantifier elimination as a preprocessing step for\n"
731
"                         sygus [*]\n"
732
"  --sygus-query-gen      use sygus to enumerate interesting satisfiability\n"
733
"                         queries [*]\n"
734
"  --sygus-query-gen-check\n"
735
"                         use interesting satisfiability queries to check\n"
736
"                         soundness of cvc5 [*]\n"
737
"  --sygus-query-gen-dump-files=MODE\n"
738
"                         mode for dumping external files corresponding to\n"
739
"                         interesting satisfiability queries with sygus-query-gen\n"
740
"  --sygus-query-gen-thresh=N\n"
741
"                         number of points that we allow to be equal for\n"
742
"                         enumerating satisfiable queries with sygus-query-gen\n"
743
"  --sygus-rec-fun        enable efficient support for recursive functions in\n"
744
"                         sygus grammars [*]\n"
745
"  --sygus-rec-fun-eval-limit=N\n"
746
"                         use a hard limit for how many times in a given\n"
747
"                         evaluator call a recursive function can be evaluated\n"
748
"                         (so infinite loops can be avoided)\n"
749
"  --sygus-repair-const   use approach to repair constants in sygus candidate\n"
750
"                         solutions [*]\n"
751
"  --sygus-repair-const-timeout=N\n"
752
"                         timeout (in milliseconds) for the satisfiability check\n"
753
"                         to repair constants in sygus candidate solutions\n"
754
"  --sygus-rr             use sygus to enumerate and verify correctness of\n"
755
"                         rewrite rules [*]\n"
756
"  --sygus-rr-synth       use sygus to enumerate candidate rewrite rules [*]\n"
757
"  --sygus-rr-synth-accel add dynamic symmetry breaking clauses based on\n"
758
"                         candidate rewrites [*]\n"
759
"  --sygus-rr-synth-check use satisfiability check to verify correctness of\n"
760
"                         candidate rewrites [*]\n"
761
"  --sygus-rr-synth-filter-cong\n"
762
"                         filter candidate rewrites based on congruence [*]\n"
763
"  --sygus-rr-synth-filter-match\n"
764
"                         filter candidate rewrites based on matching [*]\n"
765
"  --sygus-rr-synth-filter-nl\n"
766
"                         filter non-linear candidate rewrites [*]\n"
767
"  --sygus-rr-synth-filter-order\n"
768
"                         filter candidate rewrites based on variable ordering\n"
769
"                         [*]\n"
770
"  --sygus-rr-synth-input synthesize rewrite rules based on the input formula [*]\n"
771
"  --sygus-rr-synth-input-nvars=N\n"
772
"                         the maximum number of variables per type that appear in\n"
773
"                         rewrites from sygus-rr-synth-input\n"
774
"  --sygus-rr-synth-input-use-bool\n"
775
"                         synthesize Boolean rewrite rules based on the input\n"
776
"                         formula [*]\n"
777
"  --sygus-rr-synth-rec   synthesize rewrite rules over all sygus grammar types\n"
778
"                         recursively [*]\n"
779
"  --sygus-rr-verify      use sygus to verify the correctness of rewrite rules\n"
780
"                         via sampling [*]\n"
781
"  --sygus-rr-verify-abort\n"
782
"                         abort when sygus-rr-verify finds an instance of\n"
783
"                         unsoundness [*]\n"
784
"  --sygus-sample-fp-uniform\n"
785
"                         sample floating-point values uniformly instead of in a\n"
786
"                         biased fashion [*]\n"
787
"  --sygus-sample-grammar when applicable, use grammar for choosing sample points\n"
788
"                         [*]\n"
789
"  --sygus-samples=N      number of points to consider when doing sygus rewriter\n"
790
"                         sample testing\n"
791
"  --sygus-si-abort       abort if synthesis conjecture is not single invocation\n"
792
"                         [*]\n"
793
"  --sygus-si-partial     combined techniques for synthesis conjectures that are\n"
794
"                         partially single invocation [*]\n"
795
"  --sygus-si-rcons-limit=N\n"
796
"                         number of rounds of enumeration to use during solution\n"
797
"                         reconstruction (negative means unlimited)\n"
798
"  --sygus-si-rcons=MODE  policy for reconstructing solutions for single\n"
799
"                         invocation conjectures\n"
800
"  --sygus-si-reconstruct-const\n"
801
"                         include constants when reconstruct solutions for single\n"
802
"                         invocation conjectures in original grammar [*]\n"
803
"  --sygus-si=MODE        mode for processing single invocation synthesis\n"
804
"                         conjectures\n"
805
"  --sygus-stream         enumerate a stream of solutions instead of terminating\n"
806
"                         after the first one [*]\n"
807
"  --sygus-templ-embed-grammar\n"
808
"                         embed sygus templates into grammars [*]\n"
809
"  --sygus-unif-cond-independent-no-repeat-sol\n"
810
"                         Do not try repeated solutions when using independent\n"
811
"                         synthesis of conditions in unification-based function\n"
812
"                         synthesis [*]\n"
813
"  --sygus-unif-pi=MODE   mode for synthesis via piecewise-indepedent unification\n"
814
"  --sygus-unif-shuffle-cond\n"
815
"                         Shuffle condition pool when building solutions (may\n"
816
"                         change solutions sizes) [*]\n"
817
"  --sygus-verify-inst-max-rounds=N\n"
818
"                         maximum number of instantiation rounds for sygus\n"
819
"                         verification calls (-1 == no limit, default is 3)\n"
820
"  --term-db-cd           register terms in term database based on the SAT\n"
821
"                         context [*]\n"
822
"  --term-db-mode=MODE    which ground terms to consider for instantiation\n"
823
"  --trigger-active-sel=MODE\n"
824
"                         selection mode to activate triggers\n"
825
"  --trigger-sel=MODE     selection mode for triggers\n"
826
"  --user-pat=MODE        policy for handling user-provided patterns for\n"
827
"                         quantifier instantiation\n"
828
"  --var-elim-quant       enable simple variable elimination for quantified\n"
829
"                         formulas [*]\n"
830
"  --var-ineq-elim-quant  enable variable elimination based on infinite\n"
831
"                         projection of unbound arithmetic variables [*]\n"
832
"\nFrom the Separation Logic Theory module:\n"
833
"  --sep-check-neg        check negated spatial assertions [*]\n"
834
"  --sep-child-refine     child-specific refinements of negated star, positive\n"
835
"                         wand [*]\n"
836
"  --sep-deq-c            assume cardinality elements are distinct [*]\n"
837
"  --sep-exp              experimental flag for sep [*]\n"
838
"  --sep-min-refine       only add refinement lemmas for minimal (innermost)\n"
839
"                         assertions [*]\n"
840
"  --sep-pre-skolem-emp   eliminate emp constraint at preprocess time [*]\n"
841
"\nFrom the Sets Theory module:\n"
842
"  --sets-ext             enable extended symbols such as complement and universe\n"
843
"                         in theory of sets [*]\n"
844
"  --sets-infer-as-lemmas send inferences as lemmas [*]\n"
845
"  --sets-proxy-lemmas    introduce proxy variables eagerly to shorten lemmas [*]\n"
846
"\nFrom the SMT Layer module:\n"
847
"  --abstract-values      in models, output arrays (and in future, maybe others)\n"
848
"                         using abstract values, as required by the SMT-LIB\n"
849
"                         standard [*]\n"
850
"  --ackermann            eliminate functions by ackermannization [*]\n"
851
"  --block-models=MODE    mode for producing several models\n"
852
"  --check-abducts        checks whether produced solutions to get-abduct are\n"
853
"                         correct [*]\n"
854
"  --check-interpols      checks whether produced solutions to get-interpol are\n"
855
"                         correct [*]\n"
856
"  --check-models         after SAT/INVALID/UNKNOWN, check that the generated\n"
857
"                         model satisfies user assertions [*]\n"
858
"  --check-proofs         after UNSAT/VALID, check the generated proof (with\n"
859
"                         proof) [*]\n"
860
"  --check-synth-sol      checks whether produced solutions to\n"
861
"                         functions-to-synthesize satisfy the conjecture [*]\n"
862
"  --check-unsat-cores    after UNSAT/VALID, produce and check an unsat core\n"
863
"                         (expensive) [*]\n"
864
"  --debug-check-models   after SAT/INVALID/UNKNOWN, check that the generated\n"
865
"                         model satisfies user and internal assertions [*]\n"
866
"  --early-ite-removal    remove ITEs early in preprocessing [*]\n"
867
"  --expand-definitions   always expand symbol definitions in output [*]\n"
868
"  --ext-rew-prep         use extended rewriter as a preprocessing pass [*]\n"
869
"  --ext-rew-prep-agg     use aggressive extended rewriter as a preprocessing\n"
870
"                         pass [*]\n"
871
"  --foreign-theory-rewrite\n"
872
"                         Cross-theory rewrites [*]\n"
873
"  --ite-simp             turn on ite simplification (Kim (and Somenzi) et al.,\n"
874
"                         SAT 2009) [*]\n"
875
"  --learned-rewrite      rewrite the input based on learned literals [*]\n"
876
"  --minimal-unsat-cores  if an unsat core is produced, it is reduced to a\n"
877
"                         minimal unsat core [*]\n"
878
"  --model-cores=MODE     mode for producing model cores\n"
879
"  --model-u-print=MODE | --model-uninterp-print=MODE\n"
880
"                         determines how to print uninterpreted elements in\n"
881
"                         models\n"
882
"  --model-witness-value  in models, use a witness constant for choice functions\n"
883
"                         [*]\n"
884
"  --on-repeat-ite-simp   do the ite simplification pass again if repeating\n"
885
"                         simplification [*]\n"
886
"  --produce-assignments  support the get-assignment command [*]\n"
887
"  --produce-proofs       produce proofs, support check-proofs and get-proof [*]\n"
888
"  --produce-unsat-assumptions\n"
889
"                         turn on unsat assumptions generation [*]\n"
890
"  --produce-unsat-cores  turn on unsat core generation. Unless otherwise\n"
891
"                         specified, cores will be produced using SAT soving\n"
892
"                         under assumptions and preprocessing proofs. [*]\n"
893
"  --repeat-simp          make multiple passes with nonclausal simplifier [*]\n"
894
"  --simp-ite-compress    enables compressing ites after ite simplification [*]\n"
895
"  --simp-ite-hunt-zombies=N\n"
896
"                         post ite compression enables zombie removal while the\n"
897
"                         number of nodes is above this threshold\n"
898
"  --simp-with-care       enables simplifyWithCare in ite simplificiation [*]\n"
899
"  --simplification=MODE | --simplification-mode=MODE\n"
900
"                         choose simplification mode, see --simplification=help\n"
901
"  --sort-inference       calculate sort inference of input problem, convert the\n"
902
"                         input based on monotonic sorts [*]\n"
903
"  --static-learning      use static learning (on by default) [*]\n"
904
"  --sygus-out=MODE       output mode for sygus\n"
905
"  --sygus-print-callbacks\n"
906
"                         use sygus print callbacks to print sygus terms in the\n"
907
"                         user-provided form (disable for debugging) [*]\n"
908
"  --unconstrained-simp   turn on unconstrained simplification (see\n"
909
"                         Bruttomesso/Brummayer PhD thesis). Fully supported only\n"
910
"                         in (subsets of) the logic QF_ABV. [*]\n"
911
"  --unsat-cores-mode=MODE\n"
912
"                         choose unsat core mode, see --unsat-cores-mode=help\n"
913
"\nFrom the Strings Theory module:\n"
914
"  --re-elim              elimination techniques for regular expressions [*]\n"
915
"  --re-elim-agg          aggressive elimination techniques for regular\n"
916
"                         expressions [*]\n"
917
"  --re-inter-mode=MODE   determines which regular expressions intersections to\n"
918
"                         compute (EXPERTS only)\n"
919
"  --strings-check-entail-len\n"
920
"                         check entailment between length terms to reduce\n"
921
"                         splitting [*]\n"
922
"  --strings-eager        strings eager check [*]\n"
923
"  --strings-eager-eval   perform eager context-dependent evaluation for\n"
924
"                         applications of string kinds [*]\n"
925
"  --strings-eager-len    strings eager length lemmas [*]\n"
926
"  --strings-exp          experimental features in the theory of strings [*]\n"
927
"  --strings-ff           do flat form inferences [*]\n"
928
"  --strings-fmf          the finite model finding used by the theory of strings\n"
929
"                         [*]\n"
930
"  --strings-guess-model  use model guessing to avoid string extended function\n"
931
"                         reductions [*]\n"
932
"  --strings-infer-as-lemmas\n"
933
"                         always send lemmas out instead of making internal\n"
934
"                         inferences [*]\n"
935
"  --strings-infer-sym    strings split on empty string [*]\n"
936
"  --strings-lazy-pp      perform string preprocessing lazily [*]\n"
937
"  --strings-len-norm     strings length normalization lemma [*]\n"
938
"  --strings-lprop-csp    do length propagation based on constant splits [*]\n"
939
"  --strings-min-prefix-explain\n"
940
"                         minimize explanations for prefix of normal forms in\n"
941
"                         strings [*]\n"
942
"  --strings-process-loop-mode=MODE\n"
943
"                         determines how to process looping string equations\n"
944
"                         (EXPERTS only)\n"
945
"  --strings-rexplain-lemmas\n"
946
"                         regression explanations for string lemmas [*]\n"
947
"  --strings-unified-vspt use a single skolem for the variable splitting rule [*]\n"
948
"\nFrom the Theory Layer module:\n"
949
"  --assign-function-values\n"
950
"                         assign values for uninterpreted functions in models [*]\n"
951
"  --condense-function-values\n"
952
"                         condense values for functions in models rather than\n"
953
"                         explicitly representing them [*]\n"
954
"  --ee-mode=MODE         mode for managing equalities across theory solvers\n"
955
"                         (EXPERTS only)\n"
956
"  --relevance-filter     enable analysis of relevance of asserted literals with\n"
957
"                         respect to the input formula [*]\n"
958
"  --tc-mode=MODE         mode for theory combination (EXPERTS only)\n"
959
"  --theoryof-mode=MODE   mode for Theory::theoryof() (EXPERTS only)\n"
960
"\nFrom the Uninterpreted Functions Theory module:\n"
961
"  --symmetry-breaker | --uf-symmetry-breaker\n"
962
"                         use UF symmetry breaker (Deharbe et al., CADE 2011) [*]\n"
963
"  --uf-ho                enable support for higher-order reasoning [*]\n"
964
"  --uf-ho-ext            apply extensionality on function symbols [*]\n"
965
"  --uf-ss-abort-card=N   tells the uf with cardinality to only consider models\n"
966
"                         that interpret uninterpreted sorts of cardinality at\n"
967
"                         most N (-1 == no limit, default)\n"
968
"  --uf-ss-fair           use fair strategy for finite model finding multiple\n"
969
"                         sorts [*]\n"
970
"  --uf-ss-fair-monotone  group monotone sorts when enforcing fairness for finite\n"
971
"                         model finding [*]\n"
972
"  --uf-ss-totality-limited=N\n"
973
"                         apply totality axioms, but only up to cardinality N (-1\n"
974
"                         == do not apply totality axioms, default)\n"
975
"  --uf-ss-totality-sym-break\n"
976
"                         apply symmetry breaking for totality axioms [*]\n"
977
"  --uf-ss=MODE           mode of operation for uf with cardinality solver.\n";
978
979
9783
static const std::string optionsFootnote = "\n\
980
[*] Each of these options has a --no-OPTIONNAME variant, which reverses the\n\
981
    sense of the option.\n\
982
";
983
984
9783
static const std::string languageDescription =
985
    "\
986
Languages currently supported as arguments to the -L / --lang option:\n\
987
  auto                           attempt to automatically determine language\n\
988
  cvc | presentation | pl        CVC presentation language\n\
989
  smt | smtlib | smt2 |\n\
990
  smt2.6 | smtlib2.6             SMT-LIB format 2.6 with support for the strings standard\n\
991
  tptp                           TPTP format (cnf, fof and tff)\n\
992
  sygus | sygus2                 SyGuS version 2.0\n\
993
\n\
994
Languages currently supported as arguments to the --output-lang option:\n\
995
  auto                           match output language to input language\n\
996
  cvc | presentation | pl        CVC presentation language\n\
997
  smt | smtlib | smt2 |\n\
998
  smt2.6 | smtlib2.6             SMT-LIB format 2.6 with support for the strings standard\n\
999
  tptp                           TPTP format\n\
1000
  ast                            internal format (simple syntax trees)\n\
1001
";
1002
// clang-format on
1003
1004
const std::string& getDescription()
1005
{
1006
  return optionsDescription;
1007
}
1008
1009
void printUsage(const std::string& msg, std::ostream& os) {
1010
  os << msg << optionsDescription << std::endl
1011
      << optionsFootnote << std::endl << std::flush;
1012
}
1013
1014
void printShortUsage(const std::string& msg, std::ostream& os) {
1015
  os << msg << mostCommonOptionsDescription << std::endl
1016
      << optionsFootnote << std::endl
1017
      << "For full usage, please use --help."
1018
      << std::endl << std::endl << std::flush;
1019
}
1020
1021
void printLanguageHelp(std::ostream& os) {
1022
  os << languageDescription << std::flush;
1023
}
1024
1025
/** Set a given Options* as "current" just for a particular scope. */
1026
class OptionsGuard {
1027
  Options** d_field;
1028
  Options* d_old;
1029
public:
1030
8805
  OptionsGuard(Options** field, Options* opts) :
1031
    d_field(field),
1032
8805
    d_old(*field) {
1033
8805
    *field = opts;
1034
8805
  }
1035
12392
  ~OptionsGuard() {
1036
6196
    *d_field = d_old;
1037
6196
  }
1038
};/* class OptionsGuard */
1039
1040
/**
1041
 * This is a table of long options.  By policy, each short option
1042
 * should have an equivalent long option (but the reverse isn't the
1043
 * case), so this table should thus contain all command-line options.
1044
 *
1045
 * Each option in this array has four elements:
1046
 *
1047
 * 1. the long option string
1048
 * 2. argument behavior for the option:
1049
 *    no_argument - no argument permitted
1050
 *    required_argument - an argument is expected
1051
 *    optional_argument - an argument is permitted but not required
1052
 * 3. this is a pointer to an int which is set to the 4th entry of the
1053
 *    array if the option is present; or NULL, in which case
1054
 *    getopt_long() returns the 4th entry
1055
 * 4. the return value for getopt_long() when this long option (or the
1056
 *    value to set the 3rd entry to; see #3)
1057
 *
1058
 * If you add something here, you should add it in src/main/usage.h
1059
 * also, to document it.
1060
 *
1061
 * If you add something that has a short option equivalent, you should
1062
 * add it to the getopt_long() call in parse().
1063
 */
1064
// clang-format off
1065
static struct option cmdlineOptions[] = {
1066
  { "approx-branch-depth", required_argument, nullptr, 256 },
1067
  { "arith-brab", no_argument, nullptr, 257 },
1068
  { "no-arith-brab", no_argument, nullptr, 258 },
1069
  { "arith-cong-man", no_argument, nullptr, 259 },
1070
  { "no-arith-cong-man", no_argument, nullptr, 260 },
1071
  { "arith-eq-solver", no_argument, nullptr, 261 },
1072
  { "no-arith-eq-solver", no_argument, nullptr, 262 },
1073
  { "arith-no-partial-fun", no_argument, nullptr, 263 },
1074
  { "no-arith-no-partial-fun", no_argument, nullptr, 264 },
1075
  { "arith-prop-clauses", required_argument, nullptr, 265 },
1076
  { "arith-prop", required_argument, nullptr, 266 },
1077
  { "arith-rewrite-equalities", no_argument, nullptr, 267 },
1078
  { "no-arith-rewrite-equalities", no_argument, nullptr, 268 },
1079
  { "collect-pivot-stats", no_argument, nullptr, 269 },
1080
  { "no-collect-pivot-stats", no_argument, nullptr, 270 },
1081
  { "cut-all-bounded", no_argument, nullptr, 271 },
1082
  { "no-cut-all-bounded", no_argument, nullptr, 272 },
1083
  { "dio-decomps", no_argument, nullptr, 273 },
1084
  { "no-dio-decomps", no_argument, nullptr, 274 },
1085
  { "dio-repeat", no_argument, nullptr, 275 },
1086
  { "no-dio-repeat", no_argument, nullptr, 276 },
1087
  { "dio-solver", no_argument, nullptr, 277 },
1088
  { "no-dio-solver", no_argument, nullptr, 278 },
1089
  { "dio-turns", required_argument, nullptr, 279 },
1090
  { "error-selection-rule", required_argument, nullptr, 280 },
1091
  { "fc-penalties", no_argument, nullptr, 281 },
1092
  { "no-fc-penalties", no_argument, nullptr, 282 },
1093
  { "heuristic-pivots", required_argument, nullptr, 283 },
1094
  { "lemmas-on-replay-failure", no_argument, nullptr, 284 },
1095
  { "no-lemmas-on-replay-failure", no_argument, nullptr, 285 },
1096
  { "maxCutsInContext", required_argument, nullptr, 286 },
1097
  { "miplib-trick", no_argument, nullptr, 287 },
1098
  { "no-miplib-trick", no_argument, nullptr, 288 },
1099
  { "miplib-trick-subs", required_argument, nullptr, 289 },
1100
  { "new-prop", no_argument, nullptr, 290 },
1101
  { "no-new-prop", no_argument, nullptr, 291 },
1102
  { "nl-cad", no_argument, nullptr, 292 },
1103
  { "no-nl-cad", no_argument, nullptr, 293 },
1104
  { "nl-cad-initial", no_argument, nullptr, 294 },
1105
  { "no-nl-cad-initial", no_argument, nullptr, 295 },
1106
  { "nl-cad-lift", required_argument, nullptr, 296 },
1107
  { "nl-cad-proj", required_argument, nullptr, 297 },
1108
  { "nl-ext-ent-conf", no_argument, nullptr, 298 },
1109
  { "no-nl-ext-ent-conf", no_argument, nullptr, 299 },
1110
  { "nl-ext-factor", no_argument, nullptr, 300 },
1111
  { "no-nl-ext-factor", no_argument, nullptr, 301 },
1112
  { "nl-ext-inc-prec", no_argument, nullptr, 302 },
1113
  { "no-nl-ext-inc-prec", no_argument, nullptr, 303 },
1114
  { "nl-ext-purify", no_argument, nullptr, 304 },
1115
  { "no-nl-ext-purify", no_argument, nullptr, 305 },
1116
  { "nl-ext-rbound", no_argument, nullptr, 306 },
1117
  { "no-nl-ext-rbound", no_argument, nullptr, 307 },
1118
  { "nl-ext-rewrite", no_argument, nullptr, 308 },
1119
  { "no-nl-ext-rewrite", no_argument, nullptr, 309 },
1120
  { "nl-ext-split-zero", no_argument, nullptr, 310 },
1121
  { "no-nl-ext-split-zero", no_argument, nullptr, 311 },
1122
  { "nl-ext-tf-taylor-deg", required_argument, nullptr, 312 },
1123
  { "nl-ext-tf-tplanes", no_argument, nullptr, 313 },
1124
  { "no-nl-ext-tf-tplanes", no_argument, nullptr, 314 },
1125
  { "nl-ext-tplanes", no_argument, nullptr, 315 },
1126
  { "no-nl-ext-tplanes", no_argument, nullptr, 316 },
1127
  { "nl-ext-tplanes-interleave", no_argument, nullptr, 317 },
1128
  { "no-nl-ext-tplanes-interleave", no_argument, nullptr, 318 },
1129
  { "nl-ext", required_argument, nullptr, 319 },
1130
  { "nl-icp", no_argument, nullptr, 320 },
1131
  { "no-nl-icp", no_argument, nullptr, 321 },
1132
  { "nl-rlv", required_argument, nullptr, 322 },
1133
  { "pb-rewrites", no_argument, nullptr, 323 },
1134
  { "no-pb-rewrites", no_argument, nullptr, 324 },
1135
  { "pivot-threshold", required_argument, nullptr, 325 },
1136
  { "pp-assert-max-sub-size", required_argument, nullptr, 326 },
1137
  { "prop-row-length", required_argument, nullptr, 327 },
1138
  { "replay-early-close-depth", required_argument, nullptr, 328 },
1139
  { "replay-failure-penalty", required_argument, nullptr, 329 },
1140
  { "replay-lemma-reject-cut", required_argument, nullptr, 330 },
1141
  { "replay-num-err-penalty", required_argument, nullptr, 331 },
1142
  { "replay-reject-cut", required_argument, nullptr, 332 },
1143
  { "replay-soi-major-threshold-pen", required_argument, nullptr, 333 },
1144
  { "replay-soi-major-threshold", required_argument, nullptr, 334 },
1145
  { "replay-soi-minor-threshold-pen", required_argument, nullptr, 335 },
1146
  { "replay-soi-minor-threshold", required_argument, nullptr, 336 },
1147
  { "restrict-pivots", no_argument, nullptr, 337 },
1148
  { "no-restrict-pivots", no_argument, nullptr, 338 },
1149
  { "revert-arith-models-on-unsat", no_argument, nullptr, 339 },
1150
  { "no-revert-arith-models-on-unsat", no_argument, nullptr, 340 },
1151
  { "rr-turns", required_argument, nullptr, 341 },
1152
  { "se-solve-int", no_argument, nullptr, 342 },
1153
  { "no-se-solve-int", no_argument, nullptr, 343 },
1154
  { "simplex-check-period", required_argument, nullptr, 344 },
1155
  { "soi-qe", no_argument, nullptr, 345 },
1156
  { "no-soi-qe", no_argument, nullptr, 346 },
1157
  { "standard-effort-variable-order-pivots", required_argument, nullptr, 347 },
1158
  { "unate-lemmas", required_argument, nullptr, 348 },
1159
  { "use-approx", no_argument, nullptr, 349 },
1160
  { "no-use-approx", no_argument, nullptr, 350 },
1161
  { "use-fcsimplex", no_argument, nullptr, 351 },
1162
  { "no-use-fcsimplex", no_argument, nullptr, 352 },
1163
  { "use-soi", no_argument, nullptr, 353 },
1164
  { "no-use-soi", no_argument, nullptr, 354 },
1165
  { "arrays-config", required_argument, nullptr, 355 },
1166
  { "arrays-eager-index", no_argument, nullptr, 356 },
1167
  { "no-arrays-eager-index", no_argument, nullptr, 357 },
1168
  { "arrays-eager-lemmas", no_argument, nullptr, 358 },
1169
  { "no-arrays-eager-lemmas", no_argument, nullptr, 359 },
1170
  { "arrays-exp", no_argument, nullptr, 360 },
1171
  { "no-arrays-exp", no_argument, nullptr, 361 },
1172
  { "arrays-model-based", no_argument, nullptr, 362 },
1173
  { "no-arrays-model-based", no_argument, nullptr, 363 },
1174
  { "arrays-optimize-linear", no_argument, nullptr, 364 },
1175
  { "no-arrays-optimize-linear", no_argument, nullptr, 365 },
1176
  { "arrays-prop", required_argument, nullptr, 366 },
1177
  { "arrays-reduce-sharing", no_argument, nullptr, 367 },
1178
  { "no-arrays-reduce-sharing", no_argument, nullptr, 368 },
1179
  { "arrays-weak-equiv", no_argument, nullptr, 369 },
1180
  { "no-arrays-weak-equiv", no_argument, nullptr, 370 },
1181
  { "debug", required_argument, nullptr, 371 },
1182
  { "err", required_argument, nullptr, 372 },
1183
  { "diagnostic-output-channel", required_argument, nullptr, 373 },
1184
  { "in", required_argument, nullptr, 374 },
1185
  { "incremental", no_argument, nullptr, 375 },
1186
  { "no-incremental", no_argument, nullptr, 376 },
1187
  { "lang", required_argument, nullptr, 377 },
1188
  { "input-language", required_argument, nullptr, 378 },
1189
  { "out", required_argument, nullptr, 379 },
1190
  { "regular-output-channel", required_argument, nullptr, 380 },
1191
  { "output-lang", required_argument, nullptr, 381 },
1192
  { "output-language", required_argument, nullptr, 382 },
1193
  { "output", required_argument, nullptr, 383 },
1194
  { "parse-only", no_argument, nullptr, 384 },
1195
  { "no-parse-only", no_argument, nullptr, 385 },
1196
  { "preprocess-only", no_argument, nullptr, 386 },
1197
  { "no-preprocess-only", no_argument, nullptr, 387 },
1198
  { "print-success", no_argument, nullptr, 388 },
1199
  { "no-print-success", no_argument, nullptr, 389 },
1200
  { "quiet", no_argument, nullptr, 390 },
1201
  { "rlimit-per", required_argument, nullptr, 391 },
1202
  { "reproducible-resource-limit", required_argument, nullptr, 392 },
1203
  { "rlimit", required_argument, nullptr, 393 },
1204
  { "rweight", required_argument, nullptr, 394 },
1205
  { "stats", no_argument, nullptr, 395 },
1206
  { "no-stats", no_argument, nullptr, 396 },
1207
  { "stats-all", no_argument, nullptr, 397 },
1208
  { "no-stats-all", no_argument, nullptr, 398 },
1209
  { "stats-every-query", no_argument, nullptr, 399 },
1210
  { "no-stats-every-query", no_argument, nullptr, 400 },
1211
  { "stats-expert", no_argument, nullptr, 401 },
1212
  { "no-stats-expert", no_argument, nullptr, 402 },
1213
  { "tlimit-per", required_argument, nullptr, 403 },
1214
  { "tlimit", required_argument, nullptr, 404 },
1215
  { "trace", required_argument, nullptr, 405 },
1216
  { "verbose", no_argument, nullptr, 406 },
1217
  { "verbosity", required_argument, nullptr, 407 },
1218
  { "bitblast-aig", no_argument, nullptr, 408 },
1219
  { "no-bitblast-aig", no_argument, nullptr, 409 },
1220
  { "bitblast", required_argument, nullptr, 410 },
1221
  { "bitwise-eq", no_argument, nullptr, 411 },
1222
  { "no-bitwise-eq", no_argument, nullptr, 412 },
1223
  { "bool-to-bv", required_argument, nullptr, 413 },
1224
  { "bv-abstraction", no_argument, nullptr, 414 },
1225
  { "no-bv-abstraction", no_argument, nullptr, 415 },
1226
  { "bv-aig-simp", required_argument, nullptr, 416 },
1227
  { "bv-alg-extf", no_argument, nullptr, 417 },
1228
  { "no-bv-alg-extf", no_argument, nullptr, 418 },
1229
  { "bv-algebraic-budget", required_argument, nullptr, 419 },
1230
  { "bv-algebraic-solver", no_argument, nullptr, 420 },
1231
  { "no-bv-algebraic-solver", no_argument, nullptr, 421 },
1232
  { "bv-assert-input", no_argument, nullptr, 422 },
1233
  { "no-bv-assert-input", no_argument, nullptr, 423 },
1234
  { "bv-eager-explanations", no_argument, nullptr, 424 },
1235
  { "no-bv-eager-explanations", no_argument, nullptr, 425 },
1236
  { "bv-eq-solver", no_argument, nullptr, 426 },
1237
  { "no-bv-eq-solver", no_argument, nullptr, 427 },
1238
  { "bv-extract-arith", no_argument, nullptr, 428 },
1239
  { "no-bv-extract-arith", no_argument, nullptr, 429 },
1240
  { "bv-gauss-elim", no_argument, nullptr, 430 },
1241
  { "no-bv-gauss-elim", no_argument, nullptr, 431 },
1242
  { "bv-inequality-solver", no_argument, nullptr, 432 },
1243
  { "no-bv-inequality-solver", no_argument, nullptr, 433 },
1244
  { "bv-intro-pow2", no_argument, nullptr, 434 },
1245
  { "no-bv-intro-pow2", no_argument, nullptr, 435 },
1246
  { "bv-num-func", required_argument, nullptr, 436 },
1247
  { "bv-print-consts-as-indexed-symbols", no_argument, nullptr, 437 },
1248
  { "no-bv-print-consts-as-indexed-symbols", no_argument, nullptr, 438 },
1249
  { "bv-propagate", no_argument, nullptr, 439 },
1250
  { "no-bv-propagate", no_argument, nullptr, 440 },
1251
  { "bv-quick-xplain", no_argument, nullptr, 441 },
1252
  { "no-bv-quick-xplain", no_argument, nullptr, 442 },
1253
  { "bv-sat-solver", required_argument, nullptr, 443 },
1254
  { "bv-skolemize", no_argument, nullptr, 444 },
1255
  { "no-bv-skolemize", no_argument, nullptr, 445 },
1256
  { "bv-solver", required_argument, nullptr, 446 },
1257
  { "bv-to-bool", no_argument, nullptr, 447 },
1258
  { "no-bv-to-bool", no_argument, nullptr, 448 },
1259
  { "cdt-bisimilar", no_argument, nullptr, 449 },
1260
  { "no-cdt-bisimilar", no_argument, nullptr, 450 },
1261
  { "dt-binary-split", no_argument, nullptr, 451 },
1262
  { "no-dt-binary-split", no_argument, nullptr, 452 },
1263
  { "dt-blast-splits", no_argument, nullptr, 453 },
1264
  { "no-dt-blast-splits", no_argument, nullptr, 454 },
1265
  { "dt-cyclic", no_argument, nullptr, 455 },
1266
  { "no-dt-cyclic", no_argument, nullptr, 456 },
1267
  { "dt-force-assignment", no_argument, nullptr, 457 },
1268
  { "no-dt-force-assignment", no_argument, nullptr, 458 },
1269
  { "dt-infer-as-lemmas", no_argument, nullptr, 459 },
1270
  { "no-dt-infer-as-lemmas", no_argument, nullptr, 460 },
1271
  { "dt-nested-rec", no_argument, nullptr, 461 },
1272
  { "no-dt-nested-rec", no_argument, nullptr, 462 },
1273
  { "dt-polite-optimize", no_argument, nullptr, 463 },
1274
  { "no-dt-polite-optimize", no_argument, nullptr, 464 },
1275
  { "dt-rewrite-error-sel", no_argument, nullptr, 465 },
1276
  { "no-dt-rewrite-error-sel", no_argument, nullptr, 466 },
1277
  { "dt-share-sel", no_argument, nullptr, 467 },
1278
  { "no-dt-share-sel", no_argument, nullptr, 468 },
1279
  { "sygus-abort-size", required_argument, nullptr, 469 },
1280
  { "sygus-fair-max", no_argument, nullptr, 470 },
1281
  { "no-sygus-fair-max", no_argument, nullptr, 471 },
1282
  { "sygus-fair", required_argument, nullptr, 472 },
1283
  { "sygus-sym-break", no_argument, nullptr, 473 },
1284
  { "no-sygus-sym-break", no_argument, nullptr, 474 },
1285
  { "sygus-sym-break-agg", no_argument, nullptr, 475 },
1286
  { "no-sygus-sym-break-agg", no_argument, nullptr, 476 },
1287
  { "sygus-sym-break-dynamic", no_argument, nullptr, 477 },
1288
  { "no-sygus-sym-break-dynamic", no_argument, nullptr, 478 },
1289
  { "sygus-sym-break-lazy", no_argument, nullptr, 479 },
1290
  { "no-sygus-sym-break-lazy", no_argument, nullptr, 480 },
1291
  { "sygus-sym-break-pbe", no_argument, nullptr, 481 },
1292
  { "no-sygus-sym-break-pbe", no_argument, nullptr, 482 },
1293
  { "sygus-sym-break-rlv", no_argument, nullptr, 483 },
1294
  { "no-sygus-sym-break-rlv", no_argument, nullptr, 484 },
1295
  { "decision-random-weight", required_argument, nullptr, 485 },
1296
  { "decision-threshold", required_argument, nullptr, 486 },
1297
  { "decision-use-weight", no_argument, nullptr, 487 },
1298
  { "no-decision-use-weight", no_argument, nullptr, 488 },
1299
  { "decision-weight-internal", required_argument, nullptr, 489 },
1300
  { "decision", required_argument, nullptr, 490 },
1301
  { "decision-mode", required_argument, nullptr, 491 },
1302
  { "jh-rlv-order", no_argument, nullptr, 492 },
1303
  { "no-jh-rlv-order", no_argument, nullptr, 493 },
1304
  { "jh-skolem-rlv", required_argument, nullptr, 494 },
1305
  { "jh-skolem", required_argument, nullptr, 495 },
1306
  { "dag-thresh", required_argument, nullptr, 496 },
1307
  { "expr-depth", required_argument, nullptr, 497 },
1308
  { "type-checking", no_argument, nullptr, 498 },
1309
  { "no-type-checking", no_argument, nullptr, 499 },
1310
  { "fp-exp", no_argument, nullptr, 500 },
1311
  { "no-fp-exp", no_argument, nullptr, 501 },
1312
  { "fp-lazy-wb", no_argument, nullptr, 502 },
1313
  { "no-fp-lazy-wb", no_argument, nullptr, 503 },
1314
  { "copyright", no_argument, nullptr, 504 },
1315
  { "dump-instantiations", no_argument, nullptr, 505 },
1316
  { "no-dump-instantiations", no_argument, nullptr, 506 },
1317
  { "dump-instantiations-debug", no_argument, nullptr, 507 },
1318
  { "no-dump-instantiations-debug", no_argument, nullptr, 508 },
1319
  { "dump-models", no_argument, nullptr, 509 },
1320
  { "no-dump-models", no_argument, nullptr, 510 },
1321
  { "dump-proofs", no_argument, nullptr, 511 },
1322
  { "no-dump-proofs", no_argument, nullptr, 512 },
1323
  { "dump-unsat-cores", no_argument, nullptr, 513 },
1324
  { "no-dump-unsat-cores", no_argument, nullptr, 514 },
1325
  { "dump-unsat-cores-full", no_argument, nullptr, 515 },
1326
  { "no-dump-unsat-cores-full", no_argument, nullptr, 516 },
1327
  { "early-exit", no_argument, nullptr, 517 },
1328
  { "no-early-exit", no_argument, nullptr, 518 },
1329
  { "force-no-limit-cpu-while-dump", no_argument, nullptr, 519 },
1330
  { "no-force-no-limit-cpu-while-dump", no_argument, nullptr, 520 },
1331
  { "help", no_argument, nullptr, 521 },
1332
  { "interactive", no_argument, nullptr, 522 },
1333
  { "no-interactive", no_argument, nullptr, 523 },
1334
  { "interactive-prompt", no_argument, nullptr, 524 },
1335
  { "no-interactive-prompt", no_argument, nullptr, 525 },
1336
  { "seed", required_argument, nullptr, 526 },
1337
  { "segv-spin", no_argument, nullptr, 527 },
1338
  { "no-segv-spin", no_argument, nullptr, 528 },
1339
  { "show-config", no_argument, nullptr, 529 },
1340
  { "show-debug-tags", no_argument, nullptr, 530 },
1341
  { "show-trace-tags", no_argument, nullptr, 531 },
1342
  { "version", no_argument, nullptr, 532 },
1343
  { "filesystem-access", no_argument, nullptr, 533 },
1344
  { "no-filesystem-access", no_argument, nullptr, 534 },
1345
  { "force-logic", required_argument, nullptr, 535 },
1346
  { "global-declarations", no_argument, nullptr, 536 },
1347
  { "no-global-declarations", no_argument, nullptr, 537 },
1348
  { "mmap", no_argument, nullptr, 538 },
1349
  { "no-mmap", no_argument, nullptr, 539 },
1350
  { "semantic-checks", no_argument, nullptr, 540 },
1351
  { "no-semantic-checks", no_argument, nullptr, 541 },
1352
  { "strict-parsing", no_argument, nullptr, 542 },
1353
  { "no-strict-parsing", no_argument, nullptr, 543 },
1354
  { "flatten-ho-chains", no_argument, nullptr, 544 },
1355
  { "no-flatten-ho-chains", no_argument, nullptr, 545 },
1356
  { "inst-format", required_argument, nullptr, 546 },
1357
  { "model-format", required_argument, nullptr, 547 },
1358
  { "print-inst-full", no_argument, nullptr, 548 },
1359
  { "no-print-inst-full", no_argument, nullptr, 549 },
1360
  { "print-inst", required_argument, nullptr, 550 },
1361
  { "proof-eager-checking", no_argument, nullptr, 551 },
1362
  { "no-proof-eager-checking", no_argument, nullptr, 552 },
1363
  { "proof-format-mode", required_argument, nullptr, 553 },
1364
  { "proof-granularity", required_argument, nullptr, 554 },
1365
  { "proof-pedantic", required_argument, nullptr, 555 },
1366
  { "proof-print-conclusion", no_argument, nullptr, 556 },
1367
  { "no-proof-print-conclusion", no_argument, nullptr, 557 },
1368
  { "minisat-dump-dimacs", no_argument, nullptr, 558 },
1369
  { "no-minisat-dump-dimacs", no_argument, nullptr, 559 },
1370
  { "minisat-elimination", no_argument, nullptr, 560 },
1371
  { "no-minisat-elimination", no_argument, nullptr, 561 },
1372
  { "random-freq", required_argument, nullptr, 562 },
1373
  { "random-frequency", required_argument, nullptr, 563 },
1374
  { "random-seed", required_argument, nullptr, 564 },
1375
  { "refine-conflicts", no_argument, nullptr, 565 },
1376
  { "no-refine-conflicts", no_argument, nullptr, 566 },
1377
  { "restart-int-base", required_argument, nullptr, 567 },
1378
  { "restart-int-inc", required_argument, nullptr, 568 },
1379
  { "ag-miniscope-quant", no_argument, nullptr, 569 },
1380
  { "no-ag-miniscope-quant", no_argument, nullptr, 570 },
1381
  { "cegis-sample", required_argument, nullptr, 571 },
1382
  { "cegqi", no_argument, nullptr, 572 },
1383
  { "no-cegqi", no_argument, nullptr, 573 },
1384
  { "cegqi-all", no_argument, nullptr, 574 },
1385
  { "no-cegqi-all", no_argument, nullptr, 575 },
1386
  { "cegqi-bv", no_argument, nullptr, 576 },
1387
  { "no-cegqi-bv", no_argument, nullptr, 577 },
1388
  { "cegqi-bv-concat-inv", no_argument, nullptr, 578 },
1389
  { "no-cegqi-bv-concat-inv", no_argument, nullptr, 579 },
1390
  { "cegqi-bv-ineq", required_argument, nullptr, 580 },
1391
  { "cegqi-bv-interleave-value", no_argument, nullptr, 581 },
1392
  { "no-cegqi-bv-interleave-value", no_argument, nullptr, 582 },
1393
  { "cegqi-bv-linear", no_argument, nullptr, 583 },
1394
  { "no-cegqi-bv-linear", no_argument, nullptr, 584 },
1395
  { "cegqi-bv-rm-extract", no_argument, nullptr, 585 },
1396
  { "no-cegqi-bv-rm-extract", no_argument, nullptr, 586 },
1397
  { "cegqi-bv-solve-nl", no_argument, nullptr, 587 },
1398
  { "no-cegqi-bv-solve-nl", no_argument, nullptr, 588 },
1399
  { "cegqi-full", no_argument, nullptr, 589 },
1400
  { "no-cegqi-full", no_argument, nullptr, 590 },
1401
  { "cegqi-innermost", no_argument, nullptr, 591 },
1402
  { "no-cegqi-innermost", no_argument, nullptr, 592 },
1403
  { "cegqi-midpoint", no_argument, nullptr, 593 },
1404
  { "no-cegqi-midpoint", no_argument, nullptr, 594 },
1405
  { "cegqi-min-bounds", no_argument, nullptr, 595 },
1406
  { "no-cegqi-min-bounds", no_argument, nullptr, 596 },
1407
  { "cegqi-model", no_argument, nullptr, 597 },
1408
  { "no-cegqi-model", no_argument, nullptr, 598 },
1409
  { "cegqi-multi-inst", no_argument, nullptr, 599 },
1410
  { "no-cegqi-multi-inst", no_argument, nullptr, 600 },
1411
  { "cegqi-nested-qe", no_argument, nullptr, 601 },
1412
  { "no-cegqi-nested-qe", no_argument, nullptr, 602 },
1413
  { "cegqi-nopt", no_argument, nullptr, 603 },
1414
  { "no-cegqi-nopt", no_argument, nullptr, 604 },
1415
  { "cegqi-repeat-lit", no_argument, nullptr, 605 },
1416
  { "no-cegqi-repeat-lit", no_argument, nullptr, 606 },
1417
  { "cegqi-round-up-lia", no_argument, nullptr, 607 },
1418
  { "no-cegqi-round-up-lia", no_argument, nullptr, 608 },
1419
  { "cegqi-sat", no_argument, nullptr, 609 },
1420
  { "no-cegqi-sat", no_argument, nullptr, 610 },
1421
  { "cegqi-use-inf-int", no_argument, nullptr, 611 },
1422
  { "no-cegqi-use-inf-int", no_argument, nullptr, 612 },
1423
  { "cegqi-use-inf-real", no_argument, nullptr, 613 },
1424
  { "no-cegqi-use-inf-real", no_argument, nullptr, 614 },
1425
  { "cond-var-split-agg-quant", no_argument, nullptr, 615 },
1426
  { "no-cond-var-split-agg-quant", no_argument, nullptr, 616 },
1427
  { "cond-var-split-quant", no_argument, nullptr, 617 },
1428
  { "no-cond-var-split-quant", no_argument, nullptr, 618 },
1429
  { "conjecture-filter-active-terms", no_argument, nullptr, 619 },
1430
  { "no-conjecture-filter-active-terms", no_argument, nullptr, 620 },
1431
  { "conjecture-filter-canonical", no_argument, nullptr, 621 },
1432
  { "no-conjecture-filter-canonical", no_argument, nullptr, 622 },
1433
  { "conjecture-filter-model", no_argument, nullptr, 623 },
1434
  { "no-conjecture-filter-model", no_argument, nullptr, 624 },
1435
  { "conjecture-gen", no_argument, nullptr, 625 },
1436
  { "no-conjecture-gen", no_argument, nullptr, 626 },
1437
  { "conjecture-gen-gt-enum", required_argument, nullptr, 627 },
1438
  { "conjecture-gen-max-depth", required_argument, nullptr, 628 },
1439
  { "conjecture-gen-per-round", required_argument, nullptr, 629 },
1440
  { "conjecture-gen-uee-intro", no_argument, nullptr, 630 },
1441
  { "no-conjecture-gen-uee-intro", no_argument, nullptr, 631 },
1442
  { "conjecture-no-filter", no_argument, nullptr, 632 },
1443
  { "no-conjecture-no-filter", no_argument, nullptr, 633 },
1444
  { "dt-stc-ind", no_argument, nullptr, 634 },
1445
  { "no-dt-stc-ind", no_argument, nullptr, 635 },
1446
  { "dt-var-exp-quant", no_argument, nullptr, 636 },
1447
  { "no-dt-var-exp-quant", no_argument, nullptr, 637 },
1448
  { "e-matching", no_argument, nullptr, 638 },
1449
  { "no-e-matching", no_argument, nullptr, 639 },
1450
  { "elim-taut-quant", no_argument, nullptr, 640 },
1451
  { "no-elim-taut-quant", no_argument, nullptr, 641 },
1452
  { "ext-rewrite-quant", no_argument, nullptr, 642 },
1453
  { "no-ext-rewrite-quant", no_argument, nullptr, 643 },
1454
  { "finite-model-find", no_argument, nullptr, 644 },
1455
  { "no-finite-model-find", no_argument, nullptr, 645 },
1456
  { "fmf-bound", no_argument, nullptr, 646 },
1457
  { "no-fmf-bound", no_argument, nullptr, 647 },
1458
  { "fmf-bound-int", no_argument, nullptr, 648 },
1459
  { "no-fmf-bound-int", no_argument, nullptr, 649 },
1460
  { "fmf-bound-lazy", no_argument, nullptr, 650 },
1461
  { "no-fmf-bound-lazy", no_argument, nullptr, 651 },
1462
  { "fmf-fmc-simple", no_argument, nullptr, 652 },
1463
  { "no-fmf-fmc-simple", no_argument, nullptr, 653 },
1464
  { "fmf-fresh-dc", no_argument, nullptr, 654 },
1465
  { "no-fmf-fresh-dc", no_argument, nullptr, 655 },
1466
  { "fmf-fun", no_argument, nullptr, 656 },
1467
  { "no-fmf-fun", no_argument, nullptr, 657 },
1468
  { "fmf-fun-rlv", no_argument, nullptr, 658 },
1469
  { "no-fmf-fun-rlv", no_argument, nullptr, 659 },
1470
  { "fmf-inst-engine", no_argument, nullptr, 660 },
1471
  { "no-fmf-inst-engine", no_argument, nullptr, 661 },
1472
  { "fmf-type-completion-thresh", required_argument, nullptr, 662 },
1473
  { "fs-interleave", no_argument, nullptr, 663 },
1474
  { "no-fs-interleave", no_argument, nullptr, 664 },
1475
  { "fs-stratify", no_argument, nullptr, 665 },
1476
  { "no-fs-stratify", no_argument, nullptr, 666 },
1477
  { "fs-sum", no_argument, nullptr, 667 },
1478
  { "no-fs-sum", no_argument, nullptr, 668 },
1479
  { "full-saturate-quant", no_argument, nullptr, 669 },
1480
  { "no-full-saturate-quant", no_argument, nullptr, 670 },
1481
  { "full-saturate-quant-limit", required_argument, nullptr, 671 },
1482
  { "full-saturate-quant-rd", no_argument, nullptr, 672 },
1483
  { "no-full-saturate-quant-rd", no_argument, nullptr, 673 },
1484
  { "global-negate", no_argument, nullptr, 674 },
1485
  { "no-global-negate", no_argument, nullptr, 675 },
1486
  { "ho-elim", no_argument, nullptr, 676 },
1487
  { "no-ho-elim", no_argument, nullptr, 677 },
1488
  { "ho-elim-store-ax", no_argument, nullptr, 678 },
1489
  { "no-ho-elim-store-ax", no_argument, nullptr, 679 },
1490
  { "ho-matching", no_argument, nullptr, 680 },
1491
  { "no-ho-matching", no_argument, nullptr, 681 },
1492
  { "ho-matching-var-priority", no_argument, nullptr, 682 },
1493
  { "no-ho-matching-var-priority", no_argument, nullptr, 683 },
1494
  { "ho-merge-term-db", no_argument, nullptr, 684 },
1495
  { "no-ho-merge-term-db", no_argument, nullptr, 685 },
1496
  { "increment-triggers", no_argument, nullptr, 686 },
1497
  { "no-increment-triggers", no_argument, nullptr, 687 },
1498
  { "inst-level-input-only", no_argument, nullptr, 688 },
1499
  { "no-inst-level-input-only", no_argument, nullptr, 689 },
1500
  { "inst-max-level", required_argument, nullptr, 690 },
1501
  { "inst-max-rounds", required_argument, nullptr, 691 },
1502
  { "inst-no-entail", no_argument, nullptr, 692 },
1503
  { "no-inst-no-entail", no_argument, nullptr, 693 },
1504
  { "inst-when-phase", required_argument, nullptr, 694 },
1505
  { "inst-when-strict-interleave", no_argument, nullptr, 695 },
1506
  { "no-inst-when-strict-interleave", no_argument, nullptr, 696 },
1507
  { "inst-when-tc-first", no_argument, nullptr, 697 },
1508
  { "no-inst-when-tc-first", no_argument, nullptr, 698 },
1509
  { "inst-when", required_argument, nullptr, 699 },
1510
  { "int-wf-ind", no_argument, nullptr, 700 },
1511
  { "no-int-wf-ind", no_argument, nullptr, 701 },
1512
  { "ite-dtt-split-quant", no_argument, nullptr, 702 },
1513
  { "no-ite-dtt-split-quant", no_argument, nullptr, 703 },
1514
  { "ite-lift-quant", required_argument, nullptr, 704 },
1515
  { "literal-matching", required_argument, nullptr, 705 },
1516
  { "macros-quant", no_argument, nullptr, 706 },
1517
  { "no-macros-quant", no_argument, nullptr, 707 },
1518
  { "macros-quant-mode", required_argument, nullptr, 708 },
1519
  { "mbqi-interleave", no_argument, nullptr, 709 },
1520
  { "no-mbqi-interleave", no_argument, nullptr, 710 },
1521
  { "mbqi-one-inst-per-round", no_argument, nullptr, 711 },
1522
  { "no-mbqi-one-inst-per-round", no_argument, nullptr, 712 },
1523
  { "mbqi", required_argument, nullptr, 713 },
1524
  { "miniscope-quant", no_argument, nullptr, 714 },
1525
  { "no-miniscope-quant", no_argument, nullptr, 715 },
1526
  { "miniscope-quant-fv", no_argument, nullptr, 716 },
1527
  { "no-miniscope-quant-fv", no_argument, nullptr, 717 },
1528
  { "multi-trigger-cache", no_argument, nullptr, 718 },
1529
  { "no-multi-trigger-cache", no_argument, nullptr, 719 },
1530
  { "multi-trigger-linear", no_argument, nullptr, 720 },
1531
  { "no-multi-trigger-linear", no_argument, nullptr, 721 },
1532
  { "multi-trigger-priority", no_argument, nullptr, 722 },
1533
  { "no-multi-trigger-priority", no_argument, nullptr, 723 },
1534
  { "multi-trigger-when-single", no_argument, nullptr, 724 },
1535
  { "no-multi-trigger-when-single", no_argument, nullptr, 725 },
1536
  { "partial-triggers", no_argument, nullptr, 726 },
1537
  { "no-partial-triggers", no_argument, nullptr, 727 },
1538
  { "pool-inst", no_argument, nullptr, 728 },
1539
  { "no-pool-inst", no_argument, nullptr, 729 },
1540
  { "pre-skolem-quant", no_argument, nullptr, 730 },
1541
  { "no-pre-skolem-quant", no_argument, nullptr, 731 },
1542
  { "pre-skolem-quant-agg", no_argument, nullptr, 732 },
1543
  { "no-pre-skolem-quant-agg", no_argument, nullptr, 733 },
1544
  { "pre-skolem-quant-nested", no_argument, nullptr, 734 },
1545
  { "no-pre-skolem-quant-nested", no_argument, nullptr, 735 },
1546
  { "prenex-quant-user", no_argument, nullptr, 736 },
1547
  { "no-prenex-quant-user", no_argument, nullptr, 737 },
1548
  { "prenex-quant", required_argument, nullptr, 738 },
1549
  { "purify-triggers", no_argument, nullptr, 739 },
1550
  { "no-purify-triggers", no_argument, nullptr, 740 },
1551
  { "qcf-all-conflict", no_argument, nullptr, 741 },
1552
  { "no-qcf-all-conflict", no_argument, nullptr, 742 },
1553
  { "qcf-eager-check-rd", no_argument, nullptr, 743 },
1554
  { "no-qcf-eager-check-rd", no_argument, nullptr, 744 },
1555
  { "qcf-eager-test", no_argument, nullptr, 745 },
1556
  { "no-qcf-eager-test", no_argument, nullptr, 746 },
1557
  { "qcf-nested-conflict", no_argument, nullptr, 747 },
1558
  { "no-qcf-nested-conflict", no_argument, nullptr, 748 },
1559
  { "qcf-skip-rd", no_argument, nullptr, 749 },
1560
  { "no-qcf-skip-rd", no_argument, nullptr, 750 },
1561
  { "qcf-tconstraint", no_argument, nullptr, 751 },
1562
  { "no-qcf-tconstraint", no_argument, nullptr, 752 },
1563
  { "qcf-vo-exp", no_argument, nullptr, 753 },
1564
  { "no-qcf-vo-exp", no_argument, nullptr, 754 },
1565
  { "quant-alpha-equiv", no_argument, nullptr, 755 },
1566
  { "no-quant-alpha-equiv", no_argument, nullptr, 756 },
1567
  { "quant-cf", no_argument, nullptr, 757 },
1568
  { "no-quant-cf", no_argument, nullptr, 758 },
1569
  { "quant-cf-mode", required_argument, nullptr, 759 },
1570
  { "quant-cf-when", required_argument, nullptr, 760 },
1571
  { "quant-dsplit-mode", required_argument, nullptr, 761 },
1572
  { "quant-fun-wd", no_argument, nullptr, 762 },
1573
  { "no-quant-fun-wd", no_argument, nullptr, 763 },
1574
  { "quant-ind", no_argument, nullptr, 764 },
1575
  { "no-quant-ind", no_argument, nullptr, 765 },
1576
  { "quant-rep-mode", required_argument, nullptr, 766 },
1577
  { "quant-split", no_argument, nullptr, 767 },
1578
  { "no-quant-split", no_argument, nullptr, 768 },
1579
  { "register-quant-body-terms", no_argument, nullptr, 769 },
1580
  { "no-register-quant-body-terms", no_argument, nullptr, 770 },
1581
  { "relational-triggers", no_argument, nullptr, 771 },
1582
  { "no-relational-triggers", no_argument, nullptr, 772 },
1583
  { "relevant-triggers", no_argument, nullptr, 773 },
1584
  { "no-relevant-triggers", no_argument, nullptr, 774 },
1585
  { "sygus", no_argument, nullptr, 775 },
1586
  { "no-sygus", no_argument, nullptr, 776 },
1587
  { "sygus-active-gen-cfactor", required_argument, nullptr, 777 },
1588
  { "sygus-active-gen", required_argument, nullptr, 778 },
1589
  { "sygus-add-const-grammar", no_argument, nullptr, 779 },
1590
  { "no-sygus-add-const-grammar", no_argument, nullptr, 780 },
1591
  { "sygus-arg-relevant", no_argument, nullptr, 781 },
1592
  { "no-sygus-arg-relevant", no_argument, nullptr, 782 },
1593
  { "sygus-auto-unfold", no_argument, nullptr, 783 },
1594
  { "no-sygus-auto-unfold", no_argument, nullptr, 784 },
1595
  { "sygus-bool-ite-return-const", no_argument, nullptr, 785 },
1596
  { "no-sygus-bool-ite-return-const", no_argument, nullptr, 786 },
1597
  { "sygus-core-connective", no_argument, nullptr, 787 },
1598
  { "no-sygus-core-connective", no_argument, nullptr, 788 },
1599
  { "sygus-crepair-abort", no_argument, nullptr, 789 },
1600
  { "no-sygus-crepair-abort", no_argument, nullptr, 790 },
1601
  { "sygus-eval-opt", no_argument, nullptr, 791 },
1602
  { "no-sygus-eval-opt", no_argument, nullptr, 792 },
1603
  { "sygus-eval-unfold", no_argument, nullptr, 793 },
1604
  { "no-sygus-eval-unfold", no_argument, nullptr, 794 },
1605
  { "sygus-eval-unfold-bool", no_argument, nullptr, 795 },
1606
  { "no-sygus-eval-unfold-bool", no_argument, nullptr, 796 },
1607
  { "sygus-expr-miner-check-timeout", required_argument, nullptr, 797 },
1608
  { "sygus-ext-rew", no_argument, nullptr, 798 },
1609
  { "no-sygus-ext-rew", no_argument, nullptr, 799 },
1610
  { "sygus-filter-sol-rev", no_argument, nullptr, 800 },
1611
  { "no-sygus-filter-sol-rev", no_argument, nullptr, 801 },
1612
  { "sygus-filter-sol", required_argument, nullptr, 802 },
1613
  { "sygus-grammar-cons", required_argument, nullptr, 803 },
1614
  { "sygus-grammar-norm", no_argument, nullptr, 804 },
1615
  { "no-sygus-grammar-norm", no_argument, nullptr, 805 },
1616
  { "sygus-inference", no_argument, nullptr, 806 },
1617
  { "no-sygus-inference", no_argument, nullptr, 807 },
1618
  { "sygus-inst", no_argument, nullptr, 808 },
1619
  { "no-sygus-inst", no_argument, nullptr, 809 },
1620
  { "sygus-inst-mode", required_argument, nullptr, 810 },
1621
  { "sygus-inst-scope", required_argument, nullptr, 811 },
1622
  { "sygus-inst-term-sel", required_argument, nullptr, 812 },
1623
  { "sygus-inv-templ-when-sg", no_argument, nullptr, 813 },
1624
  { "no-sygus-inv-templ-when-sg", no_argument, nullptr, 814 },
1625
  { "sygus-inv-templ", required_argument, nullptr, 815 },
1626
  { "sygus-min-grammar", no_argument, nullptr, 816 },
1627
  { "no-sygus-min-grammar", no_argument, nullptr, 817 },
1628
  { "sygus-pbe", no_argument, nullptr, 818 },
1629
  { "no-sygus-pbe", no_argument, nullptr, 819 },
1630
  { "sygus-pbe-multi-fair", no_argument, nullptr, 820 },
1631
  { "no-sygus-pbe-multi-fair", no_argument, nullptr, 821 },
1632
  { "sygus-pbe-multi-fair-diff", required_argument, nullptr, 822 },
1633
  { "sygus-qe-preproc", no_argument, nullptr, 823 },
1634
  { "no-sygus-qe-preproc", no_argument, nullptr, 824 },
1635
  { "sygus-query-gen", no_argument, nullptr, 825 },
1636
  { "no-sygus-query-gen", no_argument, nullptr, 826 },
1637
  { "sygus-query-gen-check", no_argument, nullptr, 827 },
1638
  { "no-sygus-query-gen-check", no_argument, nullptr, 828 },
1639
  { "sygus-query-gen-dump-files", required_argument, nullptr, 829 },
1640
  { "sygus-query-gen-thresh", required_argument, nullptr, 830 },
1641
  { "sygus-rec-fun", no_argument, nullptr, 831 },
1642
  { "no-sygus-rec-fun", no_argument, nullptr, 832 },
1643
  { "sygus-rec-fun-eval-limit", required_argument, nullptr, 833 },
1644
  { "sygus-repair-const", no_argument, nullptr, 834 },
1645
  { "no-sygus-repair-const", no_argument, nullptr, 835 },
1646
  { "sygus-repair-const-timeout", required_argument, nullptr, 836 },
1647
  { "sygus-rr", no_argument, nullptr, 837 },
1648
  { "no-sygus-rr", no_argument, nullptr, 838 },
1649
  { "sygus-rr-synth", no_argument, nullptr, 839 },
1650
  { "no-sygus-rr-synth", no_argument, nullptr, 840 },
1651
  { "sygus-rr-synth-accel", no_argument, nullptr, 841 },
1652
  { "no-sygus-rr-synth-accel", no_argument, nullptr, 842 },
1653
  { "sygus-rr-synth-check", no_argument, nullptr, 843 },
1654
  { "no-sygus-rr-synth-check", no_argument, nullptr, 844 },
1655
  { "sygus-rr-synth-filter-cong", no_argument, nullptr, 845 },
1656
  { "no-sygus-rr-synth-filter-cong", no_argument, nullptr, 846 },
1657
  { "sygus-rr-synth-filter-match", no_argument, nullptr, 847 },
1658
  { "no-sygus-rr-synth-filter-match", no_argument, nullptr, 848 },
1659
  { "sygus-rr-synth-filter-nl", no_argument, nullptr, 849 },
1660
  { "no-sygus-rr-synth-filter-nl", no_argument, nullptr, 850 },
1661
  { "sygus-rr-synth-filter-order", no_argument, nullptr, 851 },
1662
  { "no-sygus-rr-synth-filter-order", no_argument, nullptr, 852 },
1663
  { "sygus-rr-synth-input", no_argument, nullptr, 853 },
1664
  { "no-sygus-rr-synth-input", no_argument, nullptr, 854 },
1665
  { "sygus-rr-synth-input-nvars", required_argument, nullptr, 855 },
1666
  { "sygus-rr-synth-input-use-bool", no_argument, nullptr, 856 },
1667
  { "no-sygus-rr-synth-input-use-bool", no_argument, nullptr, 857 },
1668
  { "sygus-rr-synth-rec", no_argument, nullptr, 858 },
1669
  { "no-sygus-rr-synth-rec", no_argument, nullptr, 859 },
1670
  { "sygus-rr-verify", no_argument, nullptr, 860 },
1671
  { "no-sygus-rr-verify", no_argument, nullptr, 861 },
1672
  { "sygus-rr-verify-abort", no_argument, nullptr, 862 },
1673
  { "no-sygus-rr-verify-abort", no_argument, nullptr, 863 },
1674
  { "sygus-sample-fp-uniform", no_argument, nullptr, 864 },
1675
  { "no-sygus-sample-fp-uniform", no_argument, nullptr, 865 },
1676
  { "sygus-sample-grammar", no_argument, nullptr, 866 },
1677
  { "no-sygus-sample-grammar", no_argument, nullptr, 867 },
1678
  { "sygus-samples", required_argument, nullptr, 868 },
1679
  { "sygus-si-abort", no_argument, nullptr, 869 },
1680
  { "no-sygus-si-abort", no_argument, nullptr, 870 },
1681
  { "sygus-si-partial", no_argument, nullptr, 871 },
1682
  { "no-sygus-si-partial", no_argument, nullptr, 872 },
1683
  { "sygus-si-rcons-limit", required_argument, nullptr, 873 },
1684
  { "sygus-si-rcons", required_argument, nullptr, 874 },
1685
  { "sygus-si-reconstruct-const", no_argument, nullptr, 875 },
1686
  { "no-sygus-si-reconstruct-const", no_argument, nullptr, 876 },
1687
  { "sygus-si", required_argument, nullptr, 877 },
1688
  { "sygus-stream", no_argument, nullptr, 878 },
1689
  { "no-sygus-stream", no_argument, nullptr, 879 },
1690
  { "sygus-templ-embed-grammar", no_argument, nullptr, 880 },
1691
  { "no-sygus-templ-embed-grammar", no_argument, nullptr, 881 },
1692
  { "sygus-unif-cond-independent-no-repeat-sol", no_argument, nullptr, 882 },
1693
  { "no-sygus-unif-cond-independent-no-repeat-sol", no_argument, nullptr, 883 },
1694
  { "sygus-unif-pi", required_argument, nullptr, 884 },
1695
  { "sygus-unif-shuffle-cond", no_argument, nullptr, 885 },
1696
  { "no-sygus-unif-shuffle-cond", no_argument, nullptr, 886 },
1697
  { "sygus-verify-inst-max-rounds", required_argument, nullptr, 887 },
1698
  { "term-db-cd", no_argument, nullptr, 888 },
1699
  { "no-term-db-cd", no_argument, nullptr, 889 },
1700
  { "term-db-mode", required_argument, nullptr, 890 },
1701
  { "trigger-active-sel", required_argument, nullptr, 891 },
1702
  { "trigger-sel", required_argument, nullptr, 892 },
1703
  { "user-pat", required_argument, nullptr, 893 },
1704
  { "var-elim-quant", no_argument, nullptr, 894 },
1705
  { "no-var-elim-quant", no_argument, nullptr, 895 },
1706
  { "var-ineq-elim-quant", no_argument, nullptr, 896 },
1707
  { "no-var-ineq-elim-quant", no_argument, nullptr, 897 },
1708
  { "sep-check-neg", no_argument, nullptr, 898 },
1709
  { "no-sep-check-neg", no_argument, nullptr, 899 },
1710
  { "sep-child-refine", no_argument, nullptr, 900 },
1711
  { "no-sep-child-refine", no_argument, nullptr, 901 },
1712
  { "sep-deq-c", no_argument, nullptr, 902 },
1713
  { "no-sep-deq-c", no_argument, nullptr, 903 },
1714
  { "sep-exp", no_argument, nullptr, 904 },
1715
  { "no-sep-exp", no_argument, nullptr, 905 },
1716
  { "sep-min-refine", no_argument, nullptr, 906 },
1717
  { "no-sep-min-refine", no_argument, nullptr, 907 },
1718
  { "sep-pre-skolem-emp", no_argument, nullptr, 908 },
1719
  { "no-sep-pre-skolem-emp", no_argument, nullptr, 909 },
1720
  { "sets-ext", no_argument, nullptr, 910 },
1721
  { "no-sets-ext", no_argument, nullptr, 911 },
1722
  { "sets-infer-as-lemmas", no_argument, nullptr, 912 },
1723
  { "no-sets-infer-as-lemmas", no_argument, nullptr, 913 },
1724
  { "sets-proxy-lemmas", no_argument, nullptr, 914 },
1725
  { "no-sets-proxy-lemmas", no_argument, nullptr, 915 },
1726
  { "abstract-values", no_argument, nullptr, 916 },
1727
  { "no-abstract-values", no_argument, nullptr, 917 },
1728
  { "ackermann", no_argument, nullptr, 918 },
1729
  { "no-ackermann", no_argument, nullptr, 919 },
1730
  { "block-models", required_argument, nullptr, 920 },
1731
  { "bvand-integer-granularity", required_argument, nullptr, 921 },
1732
  { "check-abducts", no_argument, nullptr, 922 },
1733
  { "no-check-abducts", no_argument, nullptr, 923 },
1734
  { "check-interpols", no_argument, nullptr, 924 },
1735
  { "no-check-interpols", no_argument, nullptr, 925 },
1736
  { "check-models", no_argument, nullptr, 926 },
1737
  { "no-check-models", no_argument, nullptr, 927 },
1738
  { "check-proofs", no_argument, nullptr, 928 },
1739
  { "no-check-proofs", no_argument, nullptr, 929 },
1740
  { "check-synth-sol", no_argument, nullptr, 930 },
1741
  { "no-check-synth-sol", no_argument, nullptr, 931 },
1742
  { "check-unsat-cores", no_argument, nullptr, 932 },
1743
  { "no-check-unsat-cores", no_argument, nullptr, 933 },
1744
  { "debug-check-models", no_argument, nullptr, 934 },
1745
  { "no-debug-check-models", no_argument, nullptr, 935 },
1746
  { "dump-to", required_argument, nullptr, 936 },
1747
  { "dump", required_argument, nullptr, 937 },
1748
  { "early-ite-removal", no_argument, nullptr, 938 },
1749
  { "no-early-ite-removal", no_argument, nullptr, 939 },
1750
  { "expand-definitions", no_argument, nullptr, 940 },
1751
  { "no-expand-definitions", no_argument, nullptr, 941 },
1752
  { "ext-rew-prep", no_argument, nullptr, 942 },
1753
  { "no-ext-rew-prep", no_argument, nullptr, 943 },
1754
  { "ext-rew-prep-agg", no_argument, nullptr, 944 },
1755
  { "no-ext-rew-prep-agg", no_argument, nullptr, 945 },
1756
  { "foreign-theory-rewrite", no_argument, nullptr, 946 },
1757
  { "no-foreign-theory-rewrite", no_argument, nullptr, 947 },
1758
  { "iand-mode", required_argument, nullptr, 948 },
1759
  { "interactive-mode", no_argument, nullptr, 949 },
1760
  { "no-interactive-mode", no_argument, nullptr, 950 },
1761
  { "ite-simp", no_argument, nullptr, 951 },
1762
  { "no-ite-simp", no_argument, nullptr, 952 },
1763
  { "learned-rewrite", no_argument, nullptr, 953 },
1764
  { "no-learned-rewrite", no_argument, nullptr, 954 },
1765
  { "minimal-unsat-cores", no_argument, nullptr, 955 },
1766
  { "no-minimal-unsat-cores", no_argument, nullptr, 956 },
1767
  { "model-cores", required_argument, nullptr, 957 },
1768
  { "model-u-print", required_argument, nullptr, 958 },
1769
  { "model-uninterp-print", required_argument, nullptr, 959 },
1770
  { "model-witness-value", no_argument, nullptr, 960 },
1771
  { "no-model-witness-value", no_argument, nullptr, 961 },
1772
  { "on-repeat-ite-simp", no_argument, nullptr, 962 },
1773
  { "no-on-repeat-ite-simp", no_argument, nullptr, 963 },
1774
  { "produce-abducts", no_argument, nullptr, 964 },
1775
  { "no-produce-abducts", no_argument, nullptr, 965 },
1776
  { "produce-assertions", no_argument, nullptr, 966 },
1777
  { "no-produce-assertions", no_argument, nullptr, 967 },
1778
  { "produce-assignments", no_argument, nullptr, 968 },
1779
  { "no-produce-assignments", no_argument, nullptr, 969 },
1780
  { "produce-interpols", required_argument, nullptr, 970 },
1781
  { "produce-models", no_argument, nullptr, 971 },
1782
  { "no-produce-models", no_argument, nullptr, 972 },
1783
  { "produce-proofs", no_argument, nullptr, 973 },
1784
  { "no-produce-proofs", no_argument, nullptr, 974 },
1785
  { "produce-unsat-assumptions", no_argument, nullptr, 975 },
1786
  { "no-produce-unsat-assumptions", no_argument, nullptr, 976 },
1787
  { "produce-unsat-cores", no_argument, nullptr, 977 },
1788
  { "no-produce-unsat-cores", no_argument, nullptr, 978 },
1789
  { "repeat-simp", no_argument, nullptr, 979 },
1790
  { "no-repeat-simp", no_argument, nullptr, 980 },
1791
  { "simp-ite-compress", no_argument, nullptr, 981 },
1792
  { "no-simp-ite-compress", no_argument, nullptr, 982 },
1793
  { "simp-ite-hunt-zombies", required_argument, nullptr, 983 },
1794
  { "simp-with-care", no_argument, nullptr, 984 },
1795
  { "no-simp-with-care", no_argument, nullptr, 985 },
1796
  { "simplification", required_argument, nullptr, 986 },
1797
  { "simplification-mode", required_argument, nullptr, 987 },
1798
  { "solve-bv-as-int", required_argument, nullptr, 988 },
1799
  { "solve-int-as-bv", required_argument, nullptr, 989 },
1800
  { "solve-real-as-int", no_argument, nullptr, 990 },
1801
  { "no-solve-real-as-int", no_argument, nullptr, 991 },
1802
  { "sort-inference", no_argument, nullptr, 992 },
1803
  { "no-sort-inference", no_argument, nullptr, 993 },
1804
  { "static-learning", no_argument, nullptr, 994 },
1805
  { "no-static-learning", no_argument, nullptr, 995 },
1806
  { "sygus-out", required_argument, nullptr, 996 },
1807
  { "sygus-print-callbacks", no_argument, nullptr, 997 },
1808
  { "no-sygus-print-callbacks", no_argument, nullptr, 998 },
1809
  { "unconstrained-simp", no_argument, nullptr, 999 },
1810
  { "no-unconstrained-simp", no_argument, nullptr, 1000 },
1811
  { "unsat-cores-mode", required_argument, nullptr, 1001 },
1812
  { "re-elim", no_argument, nullptr, 1002 },
1813
  { "no-re-elim", no_argument, nullptr, 1003 },
1814
  { "re-elim-agg", no_argument, nullptr, 1004 },
1815
  { "no-re-elim-agg", no_argument, nullptr, 1005 },
1816
  { "re-inter-mode", required_argument, nullptr, 1006 },
1817
  { "strings-check-entail-len", no_argument, nullptr, 1007 },
1818
  { "no-strings-check-entail-len", no_argument, nullptr, 1008 },
1819
  { "strings-eager", no_argument, nullptr, 1009 },
1820
  { "no-strings-eager", no_argument, nullptr, 1010 },
1821
  { "strings-eager-eval", no_argument, nullptr, 1011 },
1822
  { "no-strings-eager-eval", no_argument, nullptr, 1012 },
1823
  { "strings-eager-len", no_argument, nullptr, 1013 },
1824
  { "no-strings-eager-len", no_argument, nullptr, 1014 },
1825
  { "strings-exp", no_argument, nullptr, 1015 },
1826
  { "no-strings-exp", no_argument, nullptr, 1016 },
1827
  { "strings-ff", no_argument, nullptr, 1017 },
1828
  { "no-strings-ff", no_argument, nullptr, 1018 },
1829
  { "strings-fmf", no_argument, nullptr, 1019 },
1830
  { "no-strings-fmf", no_argument, nullptr, 1020 },
1831
  { "strings-guess-model", no_argument, nullptr, 1021 },
1832
  { "no-strings-guess-model", no_argument, nullptr, 1022 },
1833
  { "strings-infer-as-lemmas", no_argument, nullptr, 1023 },
1834
  { "no-strings-infer-as-lemmas", no_argument, nullptr, 1024 },
1835
  { "strings-infer-sym", no_argument, nullptr, 1025 },
1836
  { "no-strings-infer-sym", no_argument, nullptr, 1026 },
1837
  { "strings-lazy-pp", no_argument, nullptr, 1027 },
1838
  { "no-strings-lazy-pp", no_argument, nullptr, 1028 },
1839
  { "strings-len-norm", no_argument, nullptr, 1029 },
1840
  { "no-strings-len-norm", no_argument, nullptr, 1030 },
1841
  { "strings-lprop-csp", no_argument, nullptr, 1031 },
1842
  { "no-strings-lprop-csp", no_argument, nullptr, 1032 },
1843
  { "strings-min-prefix-explain", no_argument, nullptr, 1033 },
1844
  { "no-strings-min-prefix-explain", no_argument, nullptr, 1034 },
1845
  { "strings-process-loop-mode", required_argument, nullptr, 1035 },
1846
  { "strings-rexplain-lemmas", no_argument, nullptr, 1036 },
1847
  { "no-strings-rexplain-lemmas", no_argument, nullptr, 1037 },
1848
  { "strings-unified-vspt", no_argument, nullptr, 1038 },
1849
  { "no-strings-unified-vspt", no_argument, nullptr, 1039 },
1850
  { "assign-function-values", no_argument, nullptr, 1040 },
1851
  { "no-assign-function-values", no_argument, nullptr, 1041 },
1852
  { "condense-function-values", no_argument, nullptr, 1042 },
1853
  { "no-condense-function-values", no_argument, nullptr, 1043 },
1854
  { "ee-mode", required_argument, nullptr, 1044 },
1855
  { "relevance-filter", no_argument, nullptr, 1045 },
1856
  { "no-relevance-filter", no_argument, nullptr, 1046 },
1857
  { "tc-mode", required_argument, nullptr, 1047 },
1858
  { "theoryof-mode", required_argument, nullptr, 1048 },
1859
  { "symmetry-breaker", no_argument, nullptr, 1049 },
1860
  { "uf-symmetry-breaker", no_argument, nullptr, 1050 },
1861
  { "no-symmetry-breaker", no_argument, nullptr, 1051 },
1862
  { "no-uf-symmetry-breaker", no_argument, nullptr, 1052 },
1863
  { "uf-ho", no_argument, nullptr, 1053 },
1864
  { "no-uf-ho", no_argument, nullptr, 1054 },
1865
  { "uf-ho-ext", no_argument, nullptr, 1055 },
1866
  { "no-uf-ho-ext", no_argument, nullptr, 1056 },
1867
  { "uf-ss-abort-card", required_argument, nullptr, 1057 },
1868
  { "uf-ss-fair", no_argument, nullptr, 1058 },
1869
  { "no-uf-ss-fair", no_argument, nullptr, 1059 },
1870
  { "uf-ss-fair-monotone", no_argument, nullptr, 1060 },
1871
  { "no-uf-ss-fair-monotone", no_argument, nullptr, 1061 },
1872
  { "uf-ss-totality-limited", required_argument, nullptr, 1062 },
1873
  { "uf-ss-totality-sym-break", no_argument, nullptr, 1063 },
1874
  { "no-uf-ss-totality-sym-break", no_argument, nullptr, 1064 },
1875
  { "uf-ss", required_argument, nullptr, 1065 },
1876
  {nullptr, no_argument, nullptr, '\0'}};
1877
// clang-format on
1878
1879
std::string suggestCommandLineOptions(const std::string& optionName)
1880
{
1881
  DidYouMean didYouMean;
1882
1883
  const char* opt;
1884
  for(size_t i = 0; (opt = cmdlineOptions[i].name) != nullptr; ++i) {
1885
    didYouMean.addWord(std::string("--") + cmdlineOptions[i].name);
1886
  }
1887
1888
  return didYouMean.getMatchAsString(optionName.substr(0, optionName.find('=')));
1889
}
1890
1891
/**
1892
 * This is a default handler for options of built-in C++ type.  This
1893
 * template is really just a helper for the handleOption() template,
1894
 * below.  Variants of this template handle numeric and non-numeric,
1895
 * integral and non-integral, signed and unsigned C++ types.
1896
 * handleOption() makes sure to instantiate the right one.
1897
 *
1898
 * This implements default behavior when e.g. an option is
1899
 * unsigned but the user specifies a negative argument; etc.
1900
 */
1901
template <class T, bool is_numeric, bool is_integer>
1902
struct OptionHandler {
1903
  static T handle(const std::string& option, const std::string& flag, const std::string& optionarg);
1904
};/* struct OptionHandler<> */
1905
1906
/** Variant for integral C++ types */
1907
template <class T>
1908
struct OptionHandler<T, true, true> {
1909
134
  static bool stringToInt(T& t, const std::string& str) {
1910
268
    std::istringstream ss(str);
1911
134
    ss >> t;
1912
    char tmp;
1913
268
    return !(ss.fail() || ss.get(tmp));
1914
  }
1915
1916
101
  static bool containsMinus(const std::string& str) {
1917
101
    return str.find('-') != std::string::npos;
1918
  }
1919
1920
134
  static T handle(const std::string& option, const std::string& flag, const std::string& optionarg) {
1921
    try {
1922
      T i;
1923
134
      bool success = stringToInt(i, optionarg);
1924
1925
134
      if(!success){
1926
        throw OptionException(flag + ": failed to parse "+ optionarg +
1927
                              " as an integer of the appropriate type.");
1928
      }
1929
1930
      // Depending in the platform unsigned numbers with '-' signs may parse.
1931
      // Reject these by looking for any minus if it is not signed.
1932
101
      if( (! std::numeric_limits<T>::is_signed) && containsMinus(optionarg) ) {
1933
        // unsigned type but user gave negative argument
1934
        throw OptionException(flag + " requires a nonnegative argument");
1935
134
      } else if(i < std::numeric_limits<T>::min()) {
1936
        // negative overflow for type
1937
        std::stringstream ss;
1938
        ss << flag << " requires an argument >= "
1939
           << std::numeric_limits<T>::min();
1940
        throw OptionException(ss.str());
1941
134
      } else if(i > std::numeric_limits<T>::max()) {
1942
        // positive overflow for type
1943
        std::stringstream ss;
1944
        ss << flag << " requires an argument <= "
1945
           << std::numeric_limits<T>::max();
1946
        throw OptionException(ss.str());
1947
      }
1948
1949
134
      return i;
1950
1951
      // if(std::numeric_limits<T>::is_signed) {
1952
      //   return T(i.getLong());
1953
      // } else {
1954
      //   return T(i.getUnsignedLong());
1955
      // }
1956
    } catch(std::invalid_argument&) {
1957
      // user gave something other than an integer
1958
      throw OptionException(flag + " requires an integer argument");
1959
    }
1960
  }
1961
};/* struct OptionHandler<T, true, true> */
1962
1963
/** Variant for numeric but non-integral C++ types */
1964
template <class T>
1965
struct OptionHandler<T, true, false> {
1966
  static T handle(const std::string& option, const std::string& flag, const std::string& optionarg) {
1967
    std::stringstream inss(optionarg);
1968
    long double r;
1969
    inss >> r;
1970
    if(! inss.eof()) {
1971
      // we didn't consume the whole string (junk at end)
1972
      throw OptionException(flag + " requires a numeric argument");
1973
    }
1974
1975
    if(! std::numeric_limits<T>::is_signed && r < 0.0) {
1976
      // unsigned type but user gave negative value
1977
      throw OptionException(flag + " requires a nonnegative argument");
1978
    } else if(r < -std::numeric_limits<T>::max()) {
1979
      // negative overflow for type
1980
      std::stringstream ss;
1981
      ss << flag << " requires an argument >= "
1982
         << -std::numeric_limits<T>::max();
1983
      throw OptionException(ss.str());
1984
    } else if(r > std::numeric_limits<T>::max()) {
1985
      // positive overflow for type
1986
      std::stringstream ss;
1987
      ss << flag << " requires an argument <= "
1988
         << std::numeric_limits<T>::max();
1989
      throw OptionException(ss.str());
1990
    }
1991
1992
    return T(r);
1993
  }
1994
};/* struct OptionHandler<T, true, false> */
1995
1996
/** Variant for non-numeric C++ types */
1997
template <class T>
1998
struct OptionHandler<T, false, false> {
1999
  static T handle(const std::string& option, const std::string& flag, const std::string& optionarg) {
2000
    T::unsupported_handleOption_call___please_write_me;
2001
    // The above line causes a compiler error if this version of the template
2002
    // is ever instantiated (meaning that a specialization is missing).  So
2003
    // don't worry about the segfault in the next line, the "return" is only
2004
    // there to keep the compiler from giving additional, distracting errors
2005
    // and warnings.
2006
    return *(T*)0;
2007
  }
2008
};/* struct OptionHandler<T, false, false> */
2009
2010
/** Specialization for ManagedErr */
2011
template <>
2012
struct OptionHandler<ManagedErr, false, false>
2013
{
2014
  static ManagedErr handle(const std::string& option,
2015
                           const std::string& flag,
2016
                           const std::string& optionarg)
2017
  {
2018
    ManagedErr res;
2019
    res.open(optionarg);
2020
    return res;
2021
  }
2022
};
2023
/** Specialization for ManagedIn */
2024
template <>
2025
struct OptionHandler<ManagedIn, false, false>
2026
{
2027
  static ManagedIn handle(const std::string& option,
2028
                          const std::string& flag,
2029
                          const std::string& optionarg)
2030
  {
2031
    ManagedIn res;
2032
    res.open(optionarg);
2033
    return res;
2034
  }
2035
};
2036
/** Specialization for ManagedOut */
2037
template <>
2038
struct OptionHandler<ManagedOut, false, false>
2039
{
2040
  static ManagedOut handle(const std::string& option,
2041
                           const std::string& flag,
2042
                           const std::string& optionarg)
2043
  {
2044
    ManagedOut res;
2045
    res.open(optionarg);
2046
    return res;
2047
  }
2048
};
2049
2050
/** Handle an option of type T in the default way. */
2051
template <class T>
2052
134
T handleOption(const std::string& option, const std::string& flag, const std::string& optionarg) {
2053
134
  return OptionHandler<T, std::numeric_limits<T>::is_specialized, std::numeric_limits<T>::is_integer>::handle(option, flag, optionarg);
2054
}
2055
2056
/** Handle an option of type std::string in the default way. */
2057
template <>
2058
12
std::string handleOption<std::string>(const std::string& option, const std::string& flag, const std::string& optionarg) {
2059
12
  return optionarg;
2060
}
2061
2062
// clang-format off
2063
2064
void assign_arith_maxApproxDepth(Options& opts, const std::string& option, const std::string& optionarg) {
2065
  auto value = handleOption<int64_t>("approx-branch-depth", option, optionarg);
2066
2067
  opts.arith.maxApproxDepth = value;
2068
  opts.arith.maxApproxDepthWasSetByUser = true;
2069
  Trace("options") << "user assigned option maxApproxDepth = " << value << std::endl;
2070
}
2071
2072
4
void assign_arith_brabTest(Options& opts, const std::string& option, bool value) {
2073
2074
4
  opts.arith.brabTest = value;
2075
4
  opts.arith.brabTestWasSetByUser = true;
2076
4
  Trace("options") << "user assigned option brabTest = " << value << std::endl;
2077
4
}
2078
2079
void assign_arith_arithCongMan(Options& opts, const std::string& option, bool value) {
2080
2081
  opts.arith.arithCongMan = value;
2082
  opts.arith.arithCongManWasSetByUser = true;
2083
  Trace("options") << "user assigned option arithCongMan = " << value << std::endl;
2084
}
2085
2086
6
void assign_arith_arithEqSolver(Options& opts, const std::string& option, bool value) {
2087
2088
6
  opts.arith.arithEqSolver = value;
2089
6
  opts.arith.arithEqSolverWasSetByUser = true;
2090
6
  Trace("options") << "user assigned option arithEqSolver = " << value << std::endl;
2091
6
}
2092
2093
3
void assign_arith_arithNoPartialFun(Options& opts, const std::string& option, bool value) {
2094
2095
3
  opts.arith.arithNoPartialFun = value;
2096
3
  opts.arith.arithNoPartialFunWasSetByUser = true;
2097
3
  Trace("options") << "user assigned option arithNoPartialFun = " << value << std::endl;
2098
3
}
2099
2100
void assign_arith_arithPropAsLemmaLength(Options& opts, const std::string& option, const std::string& optionarg) {
2101
  auto value = handleOption<uint64_t>("arith-prop-clauses", option, optionarg);
2102
2103
  opts.arith.arithPropAsLemmaLength = value;
2104
  opts.arith.arithPropAsLemmaLengthWasSetByUser = true;
2105
  Trace("options") << "user assigned option arithPropAsLemmaLength = " << value << std::endl;
2106
}
2107
2108
void assign_arith_arithPropagationMode(Options& opts, const std::string& option, const std::string& optionarg) {
2109
  auto value = stringToArithPropagationMode(optionarg);
2110
2111
  opts.arith.arithPropagationMode = value;
2112
  opts.arith.arithPropagationModeWasSetByUser = true;
2113
  Trace("options") << "user assigned option arithPropagationMode = " << value << std::endl;
2114
}
2115
2116
9
void assign_arith_arithRewriteEq(Options& opts, const std::string& option, bool value) {
2117
2118
9
  opts.arith.arithRewriteEq = value;
2119
9
  opts.arith.arithRewriteEqWasSetByUser = true;
2120
9
  Trace("options") << "user assigned option arithRewriteEq = " << value << std::endl;
2121
9
}
2122
2123
void assign_arith_collectPivots(Options& opts, const std::string& option, bool value) {
2124
2125
  opts.arith.collectPivots = value;
2126
  opts.arith.collectPivotsWasSetByUser = true;
2127
  Trace("options") << "user assigned option collectPivots = " << value << std::endl;
2128
}
2129
2130
void assign_arith_doCutAllBounded(Options& opts, const std::string& option, bool value) {
2131
2132
  opts.arith.doCutAllBounded = value;
2133
  opts.arith.doCutAllBoundedWasSetByUser = true;
2134
  Trace("options") << "user assigned option doCutAllBounded = " << value << std::endl;
2135
}
2136
2137
void assign_arith_exportDioDecompositions(Options& opts, const std::string& option, bool value) {
2138
2139
  opts.arith.exportDioDecompositions = value;
2140
  opts.arith.exportDioDecompositionsWasSetByUser = true;
2141
  Trace("options") << "user assigned option exportDioDecompositions = " << value << std::endl;
2142
}
2143
2144
void assign_arith_dioRepeat(Options& opts, const std::string& option, bool value) {
2145
2146
  opts.arith.dioRepeat = value;
2147
  opts.arith.dioRepeatWasSetByUser = true;
2148
  Trace("options") << "user assigned option dioRepeat = " << value << std::endl;
2149
}
2150
2151
void assign_arith_arithDioSolver(Options& opts, const std::string& option, bool value) {
2152
2153
  opts.arith.arithDioSolver = value;
2154
  opts.arith.arithDioSolverWasSetByUser = true;
2155
  Trace("options") << "user assigned option arithDioSolver = " << value << std::endl;
2156
}
2157
2158
void assign_arith_dioSolverTurns(Options& opts, const std::string& option, const std::string& optionarg) {
2159
  auto value = handleOption<int64_t>("dio-turns", option, optionarg);
2160
2161
  opts.arith.dioSolverTurns = value;
2162
  opts.arith.dioSolverTurnsWasSetByUser = true;
2163
  Trace("options") << "user assigned option dioSolverTurns = " << value << std::endl;
2164
}
2165
2166
void assign_arith_arithErrorSelectionRule(Options& opts, const std::string& option, const std::string& optionarg) {
2167
  auto value = stringToErrorSelectionRule(optionarg);
2168
2169
  opts.arith.arithErrorSelectionRule = value;
2170
  opts.arith.arithErrorSelectionRuleWasSetByUser = true;
2171
  Trace("options") << "user assigned option arithErrorSelectionRule = " << value << std::endl;
2172
}
2173
2174
void assign_arith_havePenalties(Options& opts, const std::string& option, bool value) {
2175
2176
  opts.arith.havePenalties = value;
2177
  opts.arith.havePenaltiesWasSetByUser = true;
2178
  Trace("options") << "user assigned option havePenalties = " << value << std::endl;
2179
}
2180
2181
void assign_arith_arithHeuristicPivots(Options& opts, const std::string& option, const std::string& optionarg) {
2182
  auto value = handleOption<int64_t>("heuristic-pivots", option, optionarg);
2183
2184
  opts.arith.arithHeuristicPivots = value;
2185
  opts.arith.arithHeuristicPivotsWasSetByUser = true;
2186
  Trace("options") << "user assigned option arithHeuristicPivots = " << value << std::endl;
2187
}
2188
2189
void assign_arith_replayFailureLemma(Options& opts, const std::string& option, bool value) {
2190
2191
  opts.arith.replayFailureLemma = value;
2192
  opts.arith.replayFailureLemmaWasSetByUser = true;
2193
  Trace("options") << "user assigned option replayFailureLemma = " << value << std::endl;
2194
}
2195
2196
void assign_arith_maxCutsInContext(Options& opts, const std::string& option, const std::string& optionarg) {
2197
  auto value = handleOption<uint64_t>("maxCutsInContext", option, optionarg);
2198
2199
  opts.arith.maxCutsInContext = value;
2200
  opts.arith.maxCutsInContextWasSetByUser = true;
2201
  Trace("options") << "user assigned option maxCutsInContext = " << value << std::endl;
2202
}
2203
2204
8
void assign_arith_arithMLTrick(Options& opts, const std::string& option, bool value) {
2205
2206
8
  opts.arith.arithMLTrick = value;
2207
8
  opts.arith.arithMLTrickWasSetByUser = true;
2208
8
  Trace("options") << "user assigned option arithMLTrick = " << value << std::endl;
2209
8
}
2210
2211
void assign_arith_arithMLTrickSubstitutions(Options& opts, const std::string& option, const std::string& optionarg) {
2212
  auto value = handleOption<uint64_t>("miplib-trick-subs", option, optionarg);
2213
2214
  opts.arith.arithMLTrickSubstitutions = value;
2215
  opts.arith.arithMLTrickSubstitutionsWasSetByUser = true;
2216
  Trace("options") << "user assigned option arithMLTrickSubstitutions = " << value << std::endl;
2217
}
2218
2219
8
void assign_arith_newProp(Options& opts, const std::string& option, bool value) {
2220
2221
8
  opts.arith.newProp = value;
2222
8
  opts.arith.newPropWasSetByUser = true;
2223
8
  Trace("options") << "user assigned option newProp = " << value << std::endl;
2224
8
}
2225
2226
5
void assign_arith_nlCad(Options& opts, const std::string& option, bool value) {
2227
2228
5
  opts.arith.nlCad = value;
2229
5
  opts.arith.nlCadWasSetByUser = true;
2230
5
  Trace("options") << "user assigned option nlCad = " << value << std::endl;
2231
5
}
2232
2233
void assign_arith_nlCadUseInitial(Options& opts, const std::string& option, bool value) {
2234
2235
  opts.arith.nlCadUseInitial = value;
2236
  opts.arith.nlCadUseInitialWasSetByUser = true;
2237
  Trace("options") << "user assigned option nlCadUseInitial = " << value << std::endl;
2238
}
2239
2240
void assign_arith_nlCadLifting(Options& opts, const std::string& option, const std::string& optionarg) {
2241
  auto value = stringToNlCadLiftingMode(optionarg);
2242
2243
  opts.arith.nlCadLifting = value;
2244
  opts.arith.nlCadLiftingWasSetByUser = true;
2245
  Trace("options") << "user assigned option nlCadLifting = " << value << std::endl;
2246
}
2247
2248
void assign_arith_nlCadProjection(Options& opts, const std::string& option, const std::string& optionarg) {
2249
  auto value = stringToNlCadProjectionMode(optionarg);
2250
2251
  opts.arith.nlCadProjection = value;
2252
  opts.arith.nlCadProjectionWasSetByUser = true;
2253
  Trace("options") << "user assigned option nlCadProjection = " << value << std::endl;
2254
}
2255
2256
void assign_arith_nlExtEntailConflicts(Options& opts, const std::string& option, bool value) {
2257
2258
  opts.arith.nlExtEntailConflicts = value;
2259
  opts.arith.nlExtEntailConflictsWasSetByUser = true;
2260
  Trace("options") << "user assigned option nlExtEntailConflicts = " << value << std::endl;
2261
}
2262
2263
void assign_arith_nlExtFactor(Options& opts, const std::string& option, bool value) {
2264
2265
  opts.arith.nlExtFactor = value;
2266
  opts.arith.nlExtFactorWasSetByUser = true;
2267
  Trace("options") << "user assigned option nlExtFactor = " << value << std::endl;
2268
}
2269
2270
2
void assign_arith_nlExtIncPrecision(Options& opts, const std::string& option, bool value) {
2271
2272
2
  opts.arith.nlExtIncPrecision = value;
2273
2
  opts.arith.nlExtIncPrecisionWasSetByUser = true;
2274
2
  Trace("options") << "user assigned option nlExtIncPrecision = " << value << std::endl;
2275
2
}
2276
2277
4
void assign_arith_nlExtPurify(Options& opts, const std::string& option, bool value) {
2278
2279
4
  opts.arith.nlExtPurify = value;
2280
4
  opts.arith.nlExtPurifyWasSetByUser = true;
2281
4
  Trace("options") << "user assigned option nlExtPurify = " << value << std::endl;
2282
4
}
2283
2284
void assign_arith_nlExtResBound(Options& opts, const std::string& option, bool value) {
2285
2286
  opts.arith.nlExtResBound = value;
2287
  opts.arith.nlExtResBoundWasSetByUser = true;
2288
  Trace("options") << "user assigned option nlExtResBound = " << value << std::endl;
2289
}
2290
2291
void assign_arith_nlExtRewrites(Options& opts, const std::string& option, bool value) {
2292
2293
  opts.arith.nlExtRewrites = value;
2294
  opts.arith.nlExtRewritesWasSetByUser = true;
2295
  Trace("options") << "user assigned option nlExtRewrites = " << value << std::endl;
2296
}
2297
2298
void assign_arith_nlExtSplitZero(Options& opts, const std::string& option, bool value) {
2299
2300
  opts.arith.nlExtSplitZero = value;
2301
  opts.arith.nlExtSplitZeroWasSetByUser = true;
2302
  Trace("options") << "user assigned option nlExtSplitZero = " << value << std::endl;
2303
}
2304
2305
void assign_arith_nlExtTfTaylorDegree(Options& opts, const std::string& option, const std::string& optionarg) {
2306
  auto value = handleOption<int64_t>("nl-ext-tf-taylor-deg", option, optionarg);
2307
2308
  opts.arith.nlExtTfTaylorDegree = value;
2309
  opts.arith.nlExtTfTaylorDegreeWasSetByUser = true;
2310
  Trace("options") << "user assigned option nlExtTfTaylorDegree = " << value << std::endl;
2311
}
2312
2313
41
void assign_arith_nlExtTfTangentPlanes(Options& opts, const std::string& option, bool value) {
2314
2315
41
  opts.arith.nlExtTfTangentPlanes = value;
2316
41
  opts.arith.nlExtTfTangentPlanesWasSetByUser = true;
2317
41
  Trace("options") << "user assigned option nlExtTfTangentPlanes = " << value << std::endl;
2318
41
}
2319
2320
42
void assign_arith_nlExtTangentPlanes(Options& opts, const std::string& option, bool value) {
2321
2322
42
  opts.arith.nlExtTangentPlanes = value;
2323
42
  opts.arith.nlExtTangentPlanesWasSetByUser = true;
2324
42
  Trace("options") << "user assigned option nlExtTangentPlanes = " << value << std::endl;
2325
42
}
2326
2327
void assign_arith_nlExtTangentPlanesInterleave(Options& opts, const std::string& option, bool value) {
2328
2329
  opts.arith.nlExtTangentPlanesInterleave = value;
2330
  opts.arith.nlExtTangentPlanesInterleaveWasSetByUser = true;
2331
  Trace("options") << "user assigned option nlExtTangentPlanesInterleave = " << value << std::endl;
2332
}
2333
2334
125
void assign_arith_nlExt(Options& opts, const std::string& option, const std::string& optionarg) {
2335
125
  auto value = stringToNlExtMode(optionarg);
2336
2337
125
  opts.arith.nlExt = value;
2338
125
  opts.arith.nlExtWasSetByUser = true;
2339
125
  Trace("options") << "user assigned option nlExt = " << value << std::endl;
2340
125
}
2341
2342
2
void assign_arith_nlICP(Options& opts, const std::string& option, bool value) {
2343
2344
2
  opts.arith.nlICP = value;
2345
2
  opts.arith.nlICPWasSetByUser = true;
2346
2
  Trace("options") << "user assigned option nlICP = " << value << std::endl;
2347
2
}
2348
2349
10
void assign_arith_nlRlvMode(Options& opts, const std::string& option, const std::string& optionarg) {
2350
10
  auto value = stringToNlRlvMode(optionarg);
2351
2352
10
  opts.arith.nlRlvMode = value;
2353
10
  opts.arith.nlRlvModeWasSetByUser = true;
2354
10
  Trace("options") << "user assigned option nlRlvMode = " << value << std::endl;
2355
10
}
2356
2357
2
void assign_arith_pbRewrites(Options& opts, const std::string& option, bool value) {
2358
2359
2
  opts.arith.pbRewrites = value;
2360
2
  opts.arith.pbRewritesWasSetByUser = true;
2361
2
  Trace("options") << "user assigned option pbRewrites = " << value << std::endl;
2362
2
}
2363
2364
void assign_arith_arithPivotThreshold(Options& opts, const std::string& option, const std::string& optionarg) {
2365
  auto value = handleOption<uint64_t>("pivot-threshold", option, optionarg);
2366
2367
  opts.arith.arithPivotThreshold = value;
2368
  opts.arith.arithPivotThresholdWasSetByUser = true;
2369
  Trace("options") << "user assigned option arithPivotThreshold = " << value << std::endl;
2370
}
2371
2372
void assign_arith_ppAssertMaxSubSize(Options& opts, const std::string& option, const std::string& optionarg) {
2373
  auto value = handleOption<uint64_t>("pp-assert-max-sub-size", option, optionarg);
2374
2375
  opts.arith.ppAssertMaxSubSize = value;
2376
  opts.arith.ppAssertMaxSubSizeWasSetByUser = true;
2377
  Trace("options") << "user assigned option ppAssertMaxSubSize = " << value << std::endl;
2378
}
2379
2380
void assign_arith_arithPropagateMaxLength(Options& opts, const std::string& option, const std::string& optionarg) {
2381
  auto value = handleOption<uint64_t>("prop-row-length", option, optionarg);
2382
2383
  opts.arith.arithPropagateMaxLength = value;
2384
  opts.arith.arithPropagateMaxLengthWasSetByUser = true;
2385
  Trace("options") << "user assigned option arithPropagateMaxLength = " << value << std::endl;
2386
}
2387
2388
void assign_arith_replayEarlyCloseDepths(Options& opts, const std::string& option, const std::string& optionarg) {
2389
  auto value = handleOption<int64_t>("replay-early-close-depth", option, optionarg);
2390
2391
  opts.arith.replayEarlyCloseDepths = value;
2392
  opts.arith.replayEarlyCloseDepthsWasSetByUser = true;
2393
  Trace("options") << "user assigned option replayEarlyCloseDepths = " << value << std::endl;
2394
}
2395
2396
void assign_arith_replayFailurePenalty(Options& opts, const std::string& option, const std::string& optionarg) {
2397
  auto value = handleOption<int64_t>("replay-failure-penalty", option, optionarg);
2398
2399
  opts.arith.replayFailurePenalty = value;
2400
  opts.arith.replayFailurePenaltyWasSetByUser = true;
2401
  Trace("options") << "user assigned option replayFailurePenalty = " << value << std::endl;
2402
}
2403
2404
void assign_arith_lemmaRejectCutSize(Options& opts, const std::string& option, const std::string& optionarg) {
2405
  auto value = handleOption<uint64_t>("replay-lemma-reject-cut", option, optionarg);
2406
2407
  opts.arith.lemmaRejectCutSize = value;
2408
  opts.arith.lemmaRejectCutSizeWasSetByUser = true;
2409
  Trace("options") << "user assigned option lemmaRejectCutSize = " << value << std::endl;
2410
}
2411
2412
void assign_arith_replayNumericFailurePenalty(Options& opts, const std::string& option, const std::string& optionarg) {
2413
  auto value = handleOption<int64_t>("replay-num-err-penalty", option, optionarg);
2414
2415
  opts.arith.replayNumericFailurePenalty = value;
2416
  opts.arith.replayNumericFailurePenaltyWasSetByUser = true;
2417
  Trace("options") << "user assigned option replayNumericFailurePenalty = " << value << std::endl;
2418
}
2419
2420
void assign_arith_replayRejectCutSize(Options& opts, const std::string& option, const std::string& optionarg) {
2421
  auto value = handleOption<uint64_t>("replay-reject-cut", option, optionarg);
2422
2423
  opts.arith.replayRejectCutSize = value;
2424
  opts.arith.replayRejectCutSizeWasSetByUser = true;
2425
  Trace("options") << "user assigned option replayRejectCutSize = " << value << std::endl;
2426
}
2427
2428
void assign_arith_soiApproxMajorFailurePen(Options& opts, const std::string& option, const std::string& optionarg) {
2429
  auto value = handleOption<int64_t>("replay-soi-major-threshold-pen", option, optionarg);
2430
2431
  opts.arith.soiApproxMajorFailurePen = value;
2432
  opts.arith.soiApproxMajorFailurePenWasSetByUser = true;
2433
  Trace("options") << "user assigned option soiApproxMajorFailurePen = " << value << std::endl;
2434
}
2435
2436
void assign_arith_soiApproxMajorFailure(Options& opts, const std::string& option, const std::string& optionarg) {
2437
  auto value = handleOption<double>("replay-soi-major-threshold", option, optionarg);
2438
2439
  opts.arith.soiApproxMajorFailure = value;
2440
  opts.arith.soiApproxMajorFailureWasSetByUser = true;
2441
  Trace("options") << "user assigned option soiApproxMajorFailure = " << value << std::endl;
2442
}
2443
2444
void assign_arith_soiApproxMinorFailurePen(Options& opts, const std::string& option, const std::string& optionarg) {
2445
  auto value = handleOption<int64_t>("replay-soi-minor-threshold-pen", option, optionarg);
2446
2447
  opts.arith.soiApproxMinorFailurePen = value;
2448
  opts.arith.soiApproxMinorFailurePenWasSetByUser = true;
2449
  Trace("options") << "user assigned option soiApproxMinorFailurePen = " << value << std::endl;
2450
}
2451
2452
void assign_arith_soiApproxMinorFailure(Options& opts, const std::string& option, const std::string& optionarg) {
2453
  auto value = handleOption<double>("replay-soi-minor-threshold", option, optionarg);
2454
2455
  opts.arith.soiApproxMinorFailure = value;
2456
  opts.arith.soiApproxMinorFailureWasSetByUser = true;
2457
  Trace("options") << "user assigned option soiApproxMinorFailure = " << value << std::endl;
2458
}
2459
2460
void assign_arith_restrictedPivots(Options& opts, const std::string& option, bool value) {
2461
2462
  opts.arith.restrictedPivots = value;
2463
  opts.arith.restrictedPivotsWasSetByUser = true;
2464
  Trace("options") << "user assigned option restrictedPivots = " << value << std::endl;
2465
}
2466
2467
void assign_arith_revertArithModels(Options& opts, const std::string& option, bool value) {
2468
2469
  opts.arith.revertArithModels = value;
2470
  opts.arith.revertArithModelsWasSetByUser = true;
2471
  Trace("options") << "user assigned option revertArithModels = " << value << std::endl;
2472
}
2473
2474
void assign_arith_rrTurns(Options& opts, const std::string& option, const std::string& optionarg) {
2475
  auto value = handleOption<int64_t>("rr-turns", option, optionarg);
2476
2477
  opts.arith.rrTurns = value;
2478
  opts.arith.rrTurnsWasSetByUser = true;
2479
  Trace("options") << "user assigned option rrTurns = " << value << std::endl;
2480
}
2481
2482
void assign_arith_trySolveIntStandardEffort(Options& opts, const std::string& option, bool value) {
2483
2484
  opts.arith.trySolveIntStandardEffort = value;
2485
  opts.arith.trySolveIntStandardEffortWasSetByUser = true;
2486
  Trace("options") << "user assigned option trySolveIntStandardEffort = " << value << std::endl;
2487
}
2488
2489
void assign_arith_arithSimplexCheckPeriod(Options& opts, const std::string& option, const std::string& optionarg) {
2490
  auto value = handleOption<uint64_t>("simplex-check-period", option, optionarg);
2491
2492
  opts.arith.arithSimplexCheckPeriod = value;
2493
  opts.arith.arithSimplexCheckPeriodWasSetByUser = true;
2494
  Trace("options") << "user assigned option arithSimplexCheckPeriod = " << value << std::endl;
2495
}
2496
2497
void assign_arith_soiQuickExplain(Options& opts, const std::string& option, bool value) {
2498
2499
  opts.arith.soiQuickExplain = value;
2500
  opts.arith.soiQuickExplainWasSetByUser = true;
2501
  Trace("options") << "user assigned option soiQuickExplain = " << value << std::endl;
2502
}
2503
2504
void assign_arith_arithStandardCheckVarOrderPivots(Options& opts, const std::string& option, const std::string& optionarg) {
2505
  auto value = handleOption<int64_t>("standard-effort-variable-order-pivots", option, optionarg);
2506
2507
  opts.arith.arithStandardCheckVarOrderPivots = value;
2508
  opts.arith.arithStandardCheckVarOrderPivotsWasSetByUser = true;
2509
  Trace("options") << "user assigned option arithStandardCheckVarOrderPivots = " << value << std::endl;
2510
}
2511
2512
void assign_arith_arithUnateLemmaMode(Options& opts, const std::string& option, const std::string& optionarg) {
2513
  auto value = stringToArithUnateLemmaMode(optionarg);
2514
2515
  opts.arith.arithUnateLemmaMode = value;
2516
  opts.arith.arithUnateLemmaModeWasSetByUser = true;
2517
  Trace("options") << "user assigned option arithUnateLemmaMode = " << value << std::endl;
2518
}
2519
2520
void assign_arith_useApprox(Options& opts, const std::string& option, bool value) {
2521
2522
  opts.arith.useApprox = value;
2523
  opts.arith.useApproxWasSetByUser = true;
2524
  Trace("options") << "user assigned option useApprox = " << value << std::endl;
2525
}
2526
2527
void assign_arith_useFC(Options& opts, const std::string& option, bool value) {
2528
2529
  opts.arith.useFC = value;
2530
  opts.arith.useFCWasSetByUser = true;
2531
  Trace("options") << "user assigned option useFC = " << value << std::endl;
2532
}
2533
2534
void assign_arith_useSOI(Options& opts, const std::string& option, bool value) {
2535
2536
  opts.arith.useSOI = value;
2537
  opts.arith.useSOIWasSetByUser = true;
2538
  Trace("options") << "user assigned option useSOI = " << value << std::endl;
2539
}
2540
2541
void assign_arrays_arraysConfig(Options& opts, const std::string& option, const std::string& optionarg) {
2542
  auto value = handleOption<int64_t>("arrays-config", option, optionarg);
2543
2544
  opts.arrays.arraysConfig = value;
2545
  opts.arrays.arraysConfigWasSetByUser = true;
2546
  Trace("options") << "user assigned option arraysConfig = " << value << std::endl;
2547
}
2548
2549
void assign_arrays_arraysEagerIndexSplitting(Options& opts, const std::string& option, bool value) {
2550
2551
  opts.arrays.arraysEagerIndexSplitting = value;
2552
  opts.arrays.arraysEagerIndexSplittingWasSetByUser = true;
2553
  Trace("options") << "user assigned option arraysEagerIndexSplitting = " << value << std::endl;
2554
}
2555
2556
void assign_arrays_arraysEagerLemmas(Options& opts, const std::string& option, bool value) {
2557
2558
  opts.arrays.arraysEagerLemmas = value;
2559
  opts.arrays.arraysEagerLemmasWasSetByUser = true;
2560
  Trace("options") << "user assigned option arraysEagerLemmas = " << value << std::endl;
2561
}
2562
2563
10
void assign_arrays_arraysExp(Options& opts, const std::string& option, bool value) {
2564
2565
10
  opts.arrays.arraysExp = value;
2566
10
  opts.arrays.arraysExpWasSetByUser = true;
2567
10
  Trace("options") << "user assigned option arraysExp = " << value << std::endl;
2568
10
}
2569
2570
void assign_arrays_arraysModelBased(Options& opts, const std::string& option, bool value) {
2571
2572
  opts.arrays.arraysModelBased = value;
2573
  opts.arrays.arraysModelBasedWasSetByUser = true;
2574
  Trace("options") << "user assigned option arraysModelBased = " << value << std::endl;
2575
}
2576
2577
void assign_arrays_arraysOptimizeLinear(Options& opts, const std::string& option, bool value) {
2578
2579
  opts.arrays.arraysOptimizeLinear = value;
2580
  opts.arrays.arraysOptimizeLinearWasSetByUser = true;
2581
  Trace("options") << "user assigned option arraysOptimizeLinear = " << value << std::endl;
2582
}
2583
2584
void assign_arrays_arraysPropagate(Options& opts, const std::string& option, const std::string& optionarg) {
2585
  auto value = handleOption<int64_t>("arrays-prop", option, optionarg);
2586
2587
  opts.arrays.arraysPropagate = value;
2588
  opts.arrays.arraysPropagateWasSetByUser = true;
2589
  Trace("options") << "user assigned option arraysPropagate = " << value << std::endl;
2590
}
2591
2592
void assign_arrays_arraysReduceSharing(Options& opts, const std::string& option, bool value) {
2593
2594
  opts.arrays.arraysReduceSharing = value;
2595
  opts.arrays.arraysReduceSharingWasSetByUser = true;
2596
  Trace("options") << "user assigned option arraysReduceSharing = " << value << std::endl;
2597
}
2598
2599
void assign_arrays_arraysWeakEquivalence(Options& opts, const std::string& option, bool value) {
2600
2601
  opts.arrays.arraysWeakEquivalence = value;
2602
  opts.arrays.arraysWeakEquivalenceWasSetByUser = true;
2603
  Trace("options") << "user assigned option arraysWeakEquivalence = " << value << std::endl;
2604
}
2605
2606
void assign_base_err(Options& opts, const std::string& option, const std::string& optionarg) {
2607
  auto value = handleOption<ManagedErr>("err", option, optionarg);
2608
  opts.handler().setErrStream("err", option, value);
2609
  opts.base.err = value;
2610
  opts.base.errWasSetByUser = true;
2611
  Trace("options") << "user assigned option err = " << value << std::endl;
2612
}
2613
2614
void assign_base_in(Options& opts, const std::string& option, const std::string& optionarg) {
2615
  auto value = handleOption<ManagedIn>("in", option, optionarg);
2616
  opts.handler().setInStream("in", option, value);
2617
  opts.base.in = value;
2618
  opts.base.inWasSetByUser = true;
2619
  Trace("options") << "user assigned option in = " << value << std::endl;
2620
}
2621
2622
7286
void assign_base_incrementalSolving(Options& opts, const std::string& option, bool value) {
2623
2624
7286
  opts.base.incrementalSolving = value;
2625
7286
  opts.base.incrementalSolvingWasSetByUser = true;
2626
7286
  Trace("options") << "user assigned option incrementalSolving = " << value << std::endl;
2627
7286
}
2628
2629
524
void assign_base_inputLanguage(Options& opts, const std::string& option, const std::string& optionarg) {
2630
524
  auto value = opts.handler().stringToInputLanguage("lang", option, optionarg);
2631
2632
524
  opts.base.inputLanguage = value;
2633
524
  opts.base.inputLanguageWasSetByUser = true;
2634
524
  Trace("options") << "user assigned option inputLanguage = " << value << std::endl;
2635
524
}
2636
2637
void assign_base_languageHelp(Options& opts, const std::string& option, bool value) {
2638
2639
  opts.base.languageHelp = value;
2640
  opts.base.languageHelpWasSetByUser = true;
2641
  Trace("options") << "user assigned option languageHelp = " << value << std::endl;
2642
}
2643
2644
void assign_base_out(Options& opts, const std::string& option, const std::string& optionarg) {
2645
  auto value = handleOption<ManagedOut>("out", option, optionarg);
2646
  opts.handler().setOutStream("out", option, value);
2647
  opts.base.out = value;
2648
  opts.base.outWasSetByUser = true;
2649
  Trace("options") << "user assigned option out = " << value << std::endl;
2650
}
2651
2652
90
void assign_base_outputLanguage(Options& opts, const std::string& option, const std::string& optionarg) {
2653
90
  auto value = opts.handler().stringToOutputLanguage("output-lang", option, optionarg);
2654
2655
90
  opts.base.outputLanguage = value;
2656
90
  opts.base.outputLanguageWasSetByUser = true;
2657
90
  Trace("options") << "user assigned option outputLanguage = " << value << std::endl;
2658
90
}
2659
2660
16
void assign_base_parseOnly(Options& opts, const std::string& option, bool value) {
2661
2662
16
  opts.base.parseOnly = value;
2663
16
  opts.base.parseOnlyWasSetByUser = true;
2664
16
  Trace("options") << "user assigned option parseOnly = " << value << std::endl;
2665
16
}
2666
2667
3
void assign_base_preprocessOnly(Options& opts, const std::string& option, bool value) {
2668
2669
3
  opts.base.preprocessOnly = value;
2670
3
  opts.base.preprocessOnlyWasSetByUser = true;
2671
3
  Trace("options") << "user assigned option preprocessOnly = " << value << std::endl;
2672
3
}
2673
2674
30
void assign_base_printSuccess(Options& opts, const std::string& option, bool value) {
2675
30
  opts.handler().setPrintSuccess("print-success", option, value);
2676
30
  opts.base.printSuccess = value;
2677
30
  opts.base.printSuccessWasSetByUser = true;
2678
30
  Trace("options") << "user assigned option printSuccess = " << value << std::endl;
2679
30
}
2680
2681
void assign_base_perCallResourceLimit(Options& opts, const std::string& option, const std::string& optionarg) {
2682
  auto value = handleOption<uint64_t>("rlimit-per", option, optionarg);
2683
2684
  opts.base.perCallResourceLimit = value;
2685
  opts.base.perCallResourceLimitWasSetByUser = true;
2686
  Trace("options") << "user assigned option perCallResourceLimit = " << value << std::endl;
2687
}
2688
2689
void assign_base_cumulativeResourceLimit(Options& opts, const std::string& option, const std::string& optionarg) {
2690
  auto value = handleOption<uint64_t>("rlimit", option, optionarg);
2691
2692
  opts.base.cumulativeResourceLimit = value;
2693
  opts.base.cumulativeResourceLimitWasSetByUser = true;
2694
  Trace("options") << "user assigned option cumulativeResourceLimit = " << value << std::endl;
2695
}
2696
2697
2
void assign_base_statistics(Options& opts, const std::string& option, bool value) {
2698
2
  opts.handler().setStats("stats", option, value);
2699
2
  opts.base.statistics = value;
2700
2
  opts.base.statisticsWasSetByUser = true;
2701
2
  Trace("options") << "user assigned option statistics = " << value << std::endl;
2702
2
}
2703
2704
1
void assign_base_statisticsAll(Options& opts, const std::string& option, bool value) {
2705
1
  opts.handler().setStats("stats-all", option, value);
2706
1
  opts.base.statisticsAll = value;
2707
1
  opts.base.statisticsAllWasSetByUser = true;
2708
1
  Trace("options") << "user assigned option statisticsAll = " << value << std::endl;
2709
1
}
2710
2711
void assign_base_statisticsEveryQuery(Options& opts, const std::string& option, bool value) {
2712
  opts.handler().setStats("stats-every-query", option, value);
2713
  opts.base.statisticsEveryQuery = value;
2714
  opts.base.statisticsEveryQueryWasSetByUser = true;
2715
  Trace("options") << "user assigned option statisticsEveryQuery = " << value << std::endl;
2716
}
2717
2718
1
void assign_base_statisticsExpert(Options& opts, const std::string& option, bool value) {
2719
1
  opts.handler().setStats("stats-expert", option, value);
2720
1
  opts.base.statisticsExpert = value;
2721
1
  opts.base.statisticsExpertWasSetByUser = true;
2722
1
  Trace("options") << "user assigned option statisticsExpert = " << value << std::endl;
2723
1
}
2724
2725
6
void assign_base_perCallMillisecondLimit(Options& opts, const std::string& option, const std::string& optionarg) {
2726
6
  auto value = handleOption<uint64_t>("tlimit-per", option, optionarg);
2727
2728
6
  opts.base.perCallMillisecondLimit = value;
2729
6
  opts.base.perCallMillisecondLimitWasSetByUser = true;
2730
6
  Trace("options") << "user assigned option perCallMillisecondLimit = " << value << std::endl;
2731
6
}
2732
2733
void assign_base_cumulativeMillisecondLimit(Options& opts, const std::string& option, const std::string& optionarg) {
2734
  auto value = handleOption<uint64_t>("tlimit", option, optionarg);
2735
2736
  opts.base.cumulativeMillisecondLimit = value;
2737
  opts.base.cumulativeMillisecondLimitWasSetByUser = true;
2738
  Trace("options") << "user assigned option cumulativeMillisecondLimit = " << value << std::endl;
2739
}
2740
2741
6
void assign_base_verbosity(Options& opts, const std::string& option, const std::string& optionarg) {
2742
6
  auto value = handleOption<int64_t>("verbosity", option, optionarg);
2743
6
  opts.handler().setVerbosity("verbosity", option, value);
2744
6
  opts.base.verbosity = value;
2745
6
  opts.base.verbosityWasSetByUser = true;
2746
6
  Trace("options") << "user assigned option verbosity = " << value << std::endl;
2747
6
}
2748
2749
void assign_bv_bitvectorAig(Options& opts, const std::string& option, bool value) {
2750
  opts.handler().abcEnabledBuild("bitblast-aig", option, value);
2751
opts.handler().setBitblastAig("bitblast-aig", option, value);
2752
  opts.bv.bitvectorAig = value;
2753
  opts.bv.bitvectorAigWasSetByUser = true;
2754
  Trace("options") << "user assigned option bitvectorAig = " << value << std::endl;
2755
}
2756
2757
40
void assign_bv_bitblastMode(Options& opts, const std::string& option, const std::string& optionarg) {
2758
40
  auto value = stringToBitblastMode(optionarg);
2759
2760
40
  opts.bv.bitblastMode = value;
2761
40
  opts.bv.bitblastModeWasSetByUser = true;
2762
40
  Trace("options") << "user assigned option bitblastMode = " << value << std::endl;
2763
40
}
2764
2765
void assign_bv_bitwiseEq(Options& opts, const std::string& option, bool value) {
2766
2767
  opts.bv.bitwiseEq = value;
2768
  opts.bv.bitwiseEqWasSetByUser = true;
2769
  Trace("options") << "user assigned option bitwiseEq = " << value << std::endl;
2770
}
2771
2772
12
void assign_bv_boolToBitvector(Options& opts, const std::string& option, const std::string& optionarg) {
2773
12
  auto value = stringToBoolToBVMode(optionarg);
2774
2775
12
  opts.bv.boolToBitvector = value;
2776
12
  opts.bv.boolToBitvectorWasSetByUser = true;
2777
12
  Trace("options") << "user assigned option boolToBitvector = " << value << std::endl;
2778
12
}
2779
2780
4
void assign_bv_bvAbstraction(Options& opts, const std::string& option, bool value) {
2781
2782
4
  opts.bv.bvAbstraction = value;
2783
4
  opts.bv.bvAbstractionWasSetByUser = true;
2784
4
  Trace("options") << "user assigned option bvAbstraction = " << value << std::endl;
2785
4
}
2786
2787
void assign_bv_bitvectorAigSimplifications(Options& opts, const std::string& option, const std::string& optionarg) {
2788
  auto value = handleOption<std::string>("bv-aig-simp", option, optionarg);
2789
  opts.handler().abcEnabledBuild("bv-aig-simp", option, value);
2790
  opts.bv.bitvectorAigSimplifications = value;
2791
  opts.bv.bitvectorAigSimplificationsWasSetByUser = true;
2792
  Trace("options") << "user assigned option bitvectorAigSimplifications = " << value << std::endl;
2793
}
2794
2795
void assign_bv_bvAlgExtf(Options& opts, const std::string& option, bool value) {
2796
2797
  opts.bv.bvAlgExtf = value;
2798
  opts.bv.bvAlgExtfWasSetByUser = true;
2799
  Trace("options") << "user assigned option bvAlgExtf = " << value << std::endl;
2800
}
2801
2802
void assign_bv_bitvectorAlgebraicBudget(Options& opts, const std::string& option, const std::string& optionarg) {
2803
  auto value = handleOption<uint64_t>("bv-algebraic-budget", option, optionarg);
2804
2805
  opts.bv.bitvectorAlgebraicBudget = value;
2806
  opts.bv.bitvectorAlgebraicBudgetWasSetByUser = true;
2807
  Trace("options") << "user assigned option bitvectorAlgebraicBudget = " << value << std::endl;
2808
}
2809
2810
void assign_bv_bitvectorAlgebraicSolver(Options& opts, const std::string& option, bool value) {
2811
2812
  opts.bv.bitvectorAlgebraicSolver = value;
2813
  opts.bv.bitvectorAlgebraicSolverWasSetByUser = true;
2814
  Trace("options") << "user assigned option bitvectorAlgebraicSolver = " << value << std::endl;
2815
}
2816
2817
6
void assign_bv_bvAssertInput(Options& opts, const std::string& option, bool value) {
2818
2819
6
  opts.bv.bvAssertInput = value;
2820
6
  opts.bv.bvAssertInputWasSetByUser = true;
2821
6
  Trace("options") << "user assigned option bvAssertInput = " << value << std::endl;
2822
6
}
2823
2824
void assign_bv_bvEagerExplanations(Options& opts, const std::string& option, bool value) {
2825
2826
  opts.bv.bvEagerExplanations = value;
2827
  opts.bv.bvEagerExplanationsWasSetByUser = true;
2828
  Trace("options") << "user assigned option bvEagerExplanations = " << value << std::endl;
2829
}
2830
2831
2
void assign_bv_bitvectorEqualitySolver(Options& opts, const std::string& option, bool value) {
2832
2833
2
  opts.bv.bitvectorEqualitySolver = value;
2834
2
  opts.bv.bitvectorEqualitySolverWasSetByUser = true;
2835
2
  Trace("options") << "user assigned option bitvectorEqualitySolver = " << value << std::endl;
2836
2
}
2837
2838
void assign_bv_bvExtractArithRewrite(Options& opts, const std::string& option, bool value) {
2839
2840
  opts.bv.bvExtractArithRewrite = value;
2841
  opts.bv.bvExtractArithRewriteWasSetByUser = true;
2842
  Trace("options") << "user assigned option bvExtractArithRewrite = " << value << std::endl;
2843
}
2844
2845
void assign_bv_bvGaussElim(Options& opts, const std::string& option, bool value) {
2846
2847
  opts.bv.bvGaussElim = value;
2848
  opts.bv.bvGaussElimWasSetByUser = true;
2849
  Trace("options") << "user assigned option bvGaussElim = " << value << std::endl;
2850
}
2851
2852
void assign_bv_bitvectorInequalitySolver(Options& opts, const std::string& option, bool value) {
2853
2854
  opts.bv.bitvectorInequalitySolver = value;
2855
  opts.bv.bitvectorInequalitySolverWasSetByUser = true;
2856
  Trace("options") << "user assigned option bitvectorInequalitySolver = " << value << std::endl;
2857
}
2858
2859
2
void assign_bv_bvIntroducePow2(Options& opts, const std::string& option, bool value) {
2860
2861
2
  opts.bv.bvIntroducePow2 = value;
2862
2
  opts.bv.bvIntroducePow2WasSetByUser = true;
2863
2
  Trace("options") << "user assigned option bvIntroducePow2 = " << value << std::endl;
2864
2
}
2865
2866
void assign_bv_bvNumFunc(Options& opts, const std::string& option, const std::string& optionarg) {
2867
  auto value = handleOption<uint64_t>("bv-num-func", option, optionarg);
2868
2869
  opts.bv.bvNumFunc = value;
2870
  opts.bv.bvNumFuncWasSetByUser = true;
2871
  Trace("options") << "user assigned option bvNumFunc = " << value << std::endl;
2872
}
2873
2874
2
void assign_bv_bvPrintConstsAsIndexedSymbols(Options& opts, const std::string& option, bool value) {
2875
2876
2
  opts.bv.bvPrintConstsAsIndexedSymbols = value;
2877
2
  opts.bv.bvPrintConstsAsIndexedSymbolsWasSetByUser = true;
2878
2
  Trace("options") << "user assigned option bvPrintConstsAsIndexedSymbols = " << value << std::endl;
2879
2
}
2880
2881
void assign_bv_bitvectorPropagate(Options& opts, const std::string& option, bool value) {
2882
2883
  opts.bv.bitvectorPropagate = value;
2884
  opts.bv.bitvectorPropagateWasSetByUser = true;
2885
  Trace("options") << "user assigned option bitvectorPropagate = " << value << std::endl;
2886
}
2887
2888
void assign_bv_bitvectorQuickXplain(Options& opts, const std::string& option, bool value) {
2889
2890
  opts.bv.bitvectorQuickXplain = value;
2891
  opts.bv.bitvectorQuickXplainWasSetByUser = true;
2892
  Trace("options") << "user assigned option bitvectorQuickXplain = " << value << std::endl;
2893
}
2894
2895
18
void assign_bv_bvSatSolver(Options& opts, const std::string& option, const std::string& optionarg) {
2896
18
  auto value = stringToSatSolverMode(optionarg);
2897
16
  opts.handler().checkBvSatSolver("bv-sat-solver", option, value);
2898
16
  opts.bv.bvSatSolver = value;
2899
16
  opts.bv.bvSatSolverWasSetByUser = true;
2900
16
  Trace("options") << "user assigned option bvSatSolver = " << value << std::endl;
2901
16
}
2902
2903
void assign_bv_skolemizeArguments(Options& opts, const std::string& option, bool value) {
2904
2905
  opts.bv.skolemizeArguments = value;
2906
  opts.bv.skolemizeArgumentsWasSetByUser = true;
2907
  Trace("options") << "user assigned option skolemizeArguments = " << value << std::endl;
2908
}
2909
2910
46
void assign_bv_bvSolver(Options& opts, const std::string& option, const std::string& optionarg) {
2911
46
  auto value = stringToBVSolver(optionarg);
2912
2913
46
  opts.bv.bvSolver = value;
2914
46
  opts.bv.bvSolverWasSetByUser = true;
2915
46
  Trace("options") << "user assigned option bvSolver = " << value << std::endl;
2916
46
}
2917
2918
10
void assign_bv_bitvectorToBool(Options& opts, const std::string& option, bool value) {
2919
2920
10
  opts.bv.bitvectorToBool = value;
2921
10
  opts.bv.bitvectorToBoolWasSetByUser = true;
2922
10
  Trace("options") << "user assigned option bitvectorToBool = " << value << std::endl;
2923
10
}
2924
2925
void assign_datatypes_cdtBisimilar(Options& opts, const std::string& option, bool value) {
2926
2927
  opts.datatypes.cdtBisimilar = value;
2928
  opts.datatypes.cdtBisimilarWasSetByUser = true;
2929
  Trace("options") << "user assigned option cdtBisimilar = " << value << std::endl;
2930
}
2931
2932
void assign_datatypes_dtBinarySplit(Options& opts, const std::string& option, bool value) {
2933
2934
  opts.datatypes.dtBinarySplit = value;
2935
  opts.datatypes.dtBinarySplitWasSetByUser = true;
2936
  Trace("options") << "user assigned option dtBinarySplit = " << value << std::endl;
2937
}
2938
2939
void assign_datatypes_dtBlastSplits(Options& opts, const std::string& option, bool value) {
2940
2941
  opts.datatypes.dtBlastSplits = value;
2942
  opts.datatypes.dtBlastSplitsWasSetByUser = true;
2943
  Trace("options") << "user assigned option dtBlastSplits = " << value << std::endl;
2944
}
2945
2946
void assign_datatypes_dtCyclic(Options& opts, const std::string& option, bool value) {
2947
2948
  opts.datatypes.dtCyclic = value;
2949
  opts.datatypes.dtCyclicWasSetByUser = true;
2950
  Trace("options") << "user assigned option dtCyclic = " << value << std::endl;
2951
}
2952
2953
void assign_datatypes_dtForceAssignment(Options& opts, const std::string& option, bool value) {
2954
2955
  opts.datatypes.dtForceAssignment = value;
2956
  opts.datatypes.dtForceAssignmentWasSetByUser = true;
2957
  Trace("options") << "user assigned option dtForceAssignment = " << value << std::endl;
2958
}
2959
2960
void assign_datatypes_dtInferAsLemmas(Options& opts, const std::string& option, bool value) {
2961
2962
  opts.datatypes.dtInferAsLemmas = value;
2963
  opts.datatypes.dtInferAsLemmasWasSetByUser = true;
2964
  Trace("options") << "user assigned option dtInferAsLemmas = " << value << std::endl;
2965
}
2966
2967
10
void assign_datatypes_dtNestedRec(Options& opts, const std::string& option, bool value) {
2968
2969
10
  opts.datatypes.dtNestedRec = value;
2970
10
  opts.datatypes.dtNestedRecWasSetByUser = true;
2971
10
  Trace("options") << "user assigned option dtNestedRec = " << value << std::endl;
2972
10
}
2973
2974
void assign_datatypes_dtPoliteOptimize(Options& opts, const std::string& option, bool value) {
2975
2976
  opts.datatypes.dtPoliteOptimize = value;
2977
  opts.datatypes.dtPoliteOptimizeWasSetByUser = true;
2978
  Trace("options") << "user assigned option dtPoliteOptimize = " << value << std::endl;
2979
}
2980
2981
5
void assign_datatypes_dtRewriteErrorSel(Options& opts, const std::string& option, bool value) {
2982
2983
5
  opts.datatypes.dtRewriteErrorSel = value;
2984
5
  opts.datatypes.dtRewriteErrorSelWasSetByUser = true;
2985
5
  Trace("options") << "user assigned option dtRewriteErrorSel = " << value << std::endl;
2986
5
}
2987
2988
void assign_datatypes_dtSharedSelectors(Options& opts, const std::string& option, bool value) {
2989
2990
  opts.datatypes.dtSharedSelectors = value;
2991
  opts.datatypes.dtSharedSelectorsWasSetByUser = true;
2992
  Trace("options") << "user assigned option dtSharedSelectors = " << value << std::endl;
2993
}
2994
2995
11
void assign_datatypes_sygusAbortSize(Options& opts, const std::string& option, const std::string& optionarg) {
2996
11
  auto value = handleOption<int64_t>("sygus-abort-size", option, optionarg);
2997
2998
11
  opts.datatypes.sygusAbortSize = value;
2999
11
  opts.datatypes.sygusAbortSizeWasSetByUser = true;
3000
11
  Trace("options") << "user assigned option sygusAbortSize = " << value << std::endl;
3001
11
}
3002
3003
void assign_datatypes_sygusFairMax(Options& opts, const std::string& option, bool value) {
3004
3005
  opts.datatypes.sygusFairMax = value;
3006
  opts.datatypes.sygusFairMaxWasSetByUser = true;
3007
  Trace("options") << "user assigned option sygusFairMax = " << value << std::endl;
3008
}
3009
3010
2
void assign_datatypes_sygusFair(Options& opts, const std::string& option, const std::string& optionarg) {
3011
2
  auto value = stringToSygusFairMode(optionarg);
3012
3013
2
  opts.datatypes.sygusFair = value;
3014
2
  opts.datatypes.sygusFairWasSetByUser = true;
3015
2
  Trace("options") << "user assigned option sygusFair = " << value << std::endl;
3016
2
}
3017
3018
8
void assign_datatypes_sygusSymBreak(Options& opts, const std::string& option, bool value) {
3019
3020
8
  opts.datatypes.sygusSymBreak = value;
3021
8
  opts.datatypes.sygusSymBreakWasSetByUser = true;
3022
8
  Trace("options") << "user assigned option sygusSymBreak = " << value << std::endl;
3023
8
}
3024
3025
void assign_datatypes_sygusSymBreakAgg(Options& opts, const std::string& option, bool value) {
3026
3027
  opts.datatypes.sygusSymBreakAgg = value;
3028
  opts.datatypes.sygusSymBreakAggWasSetByUser = true;
3029
  Trace("options") << "user assigned option sygusSymBreakAgg = " << value << std::endl;
3030
}
3031
3032
void assign_datatypes_sygusSymBreakDynamic(Options& opts, const std::string& option, bool value) {
3033
3034
  opts.datatypes.sygusSymBreakDynamic = value;
3035
  opts.datatypes.sygusSymBreakDynamicWasSetByUser = true;
3036
  Trace("options") << "user assigned option sygusSymBreakDynamic = " << value << std::endl;
3037
}
3038
3039
2
void assign_datatypes_sygusSymBreakLazy(Options& opts, const std::string& option, bool value) {
3040
3041
2
  opts.datatypes.sygusSymBreakLazy = value;
3042
2
  opts.datatypes.sygusSymBreakLazyWasSetByUser = true;
3043
2
  Trace("options") << "user assigned option sygusSymBreakLazy = " << value << std::endl;
3044
2
}
3045
3046
void assign_datatypes_sygusSymBreakPbe(Options& opts, const std::string& option, bool value) {
3047
3048
  opts.datatypes.sygusSymBreakPbe = value;
3049
  opts.datatypes.sygusSymBreakPbeWasSetByUser = true;
3050
  Trace("options") << "user assigned option sygusSymBreakPbe = " << value << std::endl;
3051
}
3052
3053
2
void assign_datatypes_sygusSymBreakRlv(Options& opts, const std::string& option, bool value) {
3054
3055
2
  opts.datatypes.sygusSymBreakRlv = value;
3056
2
  opts.datatypes.sygusSymBreakRlvWasSetByUser = true;
3057
2
  Trace("options") << "user assigned option sygusSymBreakRlv = " << value << std::endl;
3058
2
}
3059
3060
void assign_decision_decisionRandomWeight(Options& opts, const std::string& option, const std::string& optionarg) {
3061
  auto value = handleOption<int64_t>("decision-random-weight", option, optionarg);
3062
3063
  opts.decision.decisionRandomWeight = value;
3064
  opts.decision.decisionRandomWeightWasSetByUser = true;
3065
  Trace("options") << "user assigned option decisionRandomWeight = " << value << std::endl;
3066
}
3067
3068
void assign_decision_decisionThreshold(Options& opts, const std::string& option, const std::string& optionarg) {
3069
  auto value = handleOption<cvc5::decision::DecisionWeight>("decision-threshold", option, optionarg);
3070
3071
  opts.decision.decisionThreshold = value;
3072
  opts.decision.decisionThresholdWasSetByUser = true;
3073
  Trace("options") << "user assigned option decisionThreshold = " << value << std::endl;
3074
}
3075
3076
void assign_decision_decisionUseWeight(Options& opts, const std::string& option, bool value) {
3077
3078
  opts.decision.decisionUseWeight = value;
3079
  opts.decision.decisionUseWeightWasSetByUser = true;
3080
  Trace("options") << "user assigned option decisionUseWeight = " << value << std::endl;
3081
}
3082
3083
void assign_decision_decisionWeightInternal(Options& opts, const std::string& option, const std::string& optionarg) {
3084
  auto value = stringToDecisionWeightInternal(optionarg);
3085
3086
  opts.decision.decisionWeightInternal = value;
3087
  opts.decision.decisionWeightInternalWasSetByUser = true;
3088
  Trace("options") << "user assigned option decisionWeightInternal = " << value << std::endl;
3089
}
3090
3091
94
void assign_decision_decisionMode(Options& opts, const std::string& option, const std::string& optionarg) {
3092
94
  auto value = stringToDecisionMode(optionarg);
3093
3094
94
  opts.decision.decisionMode = value;
3095
94
  opts.decision.decisionModeWasSetByUser = true;
3096
94
  Trace("options") << "user assigned option decisionMode = " << value << std::endl;
3097
94
}
3098
3099
10
void assign_decision_jhRlvOrder(Options& opts, const std::string& option, bool value) {
3100
3101
10
  opts.decision.jhRlvOrder = value;
3102
10
  opts.decision.jhRlvOrderWasSetByUser = true;
3103
10
  Trace("options") << "user assigned option jhRlvOrder = " << value << std::endl;
3104
10
}
3105
3106
void assign_decision_jhSkolemRlvMode(Options& opts, const std::string& option, const std::string& optionarg) {
3107
  auto value = stringToJutificationSkolemRlvMode(optionarg);
3108
3109
  opts.decision.jhSkolemRlvMode = value;
3110
  opts.decision.jhSkolemRlvModeWasSetByUser = true;
3111
  Trace("options") << "user assigned option jhSkolemRlvMode = " << value << std::endl;
3112
}
3113
3114
void assign_decision_jhSkolemMode(Options& opts, const std::string& option, const std::string& optionarg) {
3115
  auto value = stringToJutificationSkolemMode(optionarg);
3116
3117
  opts.decision.jhSkolemMode = value;
3118
  opts.decision.jhSkolemModeWasSetByUser = true;
3119
  Trace("options") << "user assigned option jhSkolemMode = " << value << std::endl;
3120
}
3121
3122
2
void assign_expr_defaultDagThresh(Options& opts, const std::string& option, const std::string& optionarg) {
3123
2
  auto value = handleOption<int64_t>("dag-thresh", option, optionarg);
3124
2
  opts.handler().checkMinimum("dag-thresh", option, value, static_cast<int64_t>(0));
3125
2
opts.handler().setDefaultDagThresh("dag-thresh", option, value);
3126
2
  opts.expr.defaultDagThresh = value;
3127
2
  opts.expr.defaultDagThreshWasSetByUser = true;
3128
2
  Trace("options") << "user assigned option defaultDagThresh = " << value << std::endl;
3129
2
}
3130
3131
void assign_expr_defaultExprDepth(Options& opts, const std::string& option, const std::string& optionarg) {
3132
  auto value = handleOption<int64_t>("expr-depth", option, optionarg);
3133
  opts.handler().checkMinimum("expr-depth", option, value, static_cast<int64_t>(-1));
3134
opts.handler().setDefaultExprDepth("expr-depth", option, value);
3135
  opts.expr.defaultExprDepth = value;
3136
  opts.expr.defaultExprDepthWasSetByUser = true;
3137
  Trace("options") << "user assigned option defaultExprDepth = " << value << std::endl;
3138
}
3139
3140
void assign_expr_typeChecking(Options& opts, const std::string& option, bool value) {
3141
3142
  opts.expr.typeChecking = value;
3143
  opts.expr.typeCheckingWasSetByUser = true;
3144
  Trace("options") << "user assigned option typeChecking = " << value << std::endl;
3145
}
3146
3147
22
void assign_fp_fpExp(Options& opts, const std::string& option, bool value) {
3148
3149
22
  opts.fp.fpExp = value;
3150
22
  opts.fp.fpExpWasSetByUser = true;
3151
22
  Trace("options") << "user assigned option fpExp = " << value << std::endl;
3152
22
}
3153
3154
3
void assign_fp_fpLazyWb(Options& opts, const std::string& option, bool value) {
3155
3156
3
  opts.fp.fpLazyWb = value;
3157
3
  opts.fp.fpLazyWbWasSetByUser = true;
3158
3
  Trace("options") << "user assigned option fpLazyWb = " << value << std::endl;
3159
3
}
3160
3161
12
void assign_driver_dumpInstantiations(Options& opts, const std::string& option, bool value) {
3162
3163
12
  opts.driver.dumpInstantiations = value;
3164
12
  opts.driver.dumpInstantiationsWasSetByUser = true;
3165
12
  Trace("options") << "user assigned option dumpInstantiations = " << value << std::endl;
3166
12
}
3167
3168
void assign_driver_dumpInstantiationsDebug(Options& opts, const std::string& option, bool value) {
3169
3170
  opts.driver.dumpInstantiationsDebug = value;
3171
  opts.driver.dumpInstantiationsDebugWasSetByUser = true;
3172
  Trace("options") << "user assigned option dumpInstantiationsDebug = " << value << std::endl;
3173
}
3174
3175
6
void assign_driver_dumpModels(Options& opts, const std::string& option, bool value) {
3176
3177
6
  opts.driver.dumpModels = value;
3178
6
  opts.driver.dumpModelsWasSetByUser = true;
3179
6
  Trace("options") << "user assigned option dumpModels = " << value << std::endl;
3180
6
}
3181
3182
void assign_driver_dumpProofs(Options& opts, const std::string& option, bool value) {
3183
3184
  opts.driver.dumpProofs = value;
3185
  opts.driver.dumpProofsWasSetByUser = true;
3186
  Trace("options") << "user assigned option dumpProofs = " << value << std::endl;
3187
}
3188
3189
void assign_driver_dumpUnsatCores(Options& opts, const std::string& option, bool value) {
3190
3191
  opts.driver.dumpUnsatCores = value;
3192
  opts.driver.dumpUnsatCoresWasSetByUser = true;
3193
  Trace("options") << "user assigned option dumpUnsatCores = " << value << std::endl;
3194
}
3195
3196
3
void assign_driver_dumpUnsatCoresFull(Options& opts, const std::string& option, bool value) {
3197
3198
3
  opts.driver.dumpUnsatCoresFull = value;
3199
3
  opts.driver.dumpUnsatCoresFullWasSetByUser = true;
3200
3
  Trace("options") << "user assigned option dumpUnsatCoresFull = " << value << std::endl;
3201
3
}
3202
3203
void assign_driver_earlyExit(Options& opts, const std::string& option, bool value) {
3204
3205
  opts.driver.earlyExit = value;
3206
  opts.driver.earlyExitWasSetByUser = true;
3207
  Trace("options") << "user assigned option earlyExit = " << value << std::endl;
3208
}
3209
3210
void assign_driver_forceNoLimitCpuWhileDump(Options& opts, const std::string& option, bool value) {
3211
3212
  opts.driver.forceNoLimitCpuWhileDump = value;
3213
  opts.driver.forceNoLimitCpuWhileDumpWasSetByUser = true;
3214
  Trace("options") << "user assigned option forceNoLimitCpuWhileDump = " << value << std::endl;
3215
}
3216
3217
void assign_driver_help(Options& opts, const std::string& option, bool value) {
3218
3219
  opts.driver.help = value;
3220
  opts.driver.helpWasSetByUser = true;
3221
  Trace("options") << "user assigned option help = " << value << std::endl;
3222
}
3223
3224
void assign_driver_interactive(Options& opts, const std::string& option, bool value) {
3225
3226
  opts.driver.interactive = value;
3227
  opts.driver.interactiveWasSetByUser = true;
3228
  Trace("options") << "user assigned option interactive = " << value << std::endl;
3229
}
3230
3231
void assign_driver_interactivePrompt(Options& opts, const std::string& option, bool value) {
3232
3233
  opts.driver.interactivePrompt = value;
3234
  opts.driver.interactivePromptWasSetByUser = true;
3235
  Trace("options") << "user assigned option interactivePrompt = " << value << std::endl;
3236
}
3237
3238
void assign_driver_seed(Options& opts, const std::string& option, const std::string& optionarg) {
3239
  auto value = handleOption<uint64_t>("seed", option, optionarg);
3240
3241
  opts.driver.seed = value;
3242
  opts.driver.seedWasSetByUser = true;
3243
  Trace("options") << "user assigned option seed = " << value << std::endl;
3244
}
3245
3246
void assign_driver_segvSpin(Options& opts, const std::string& option, bool value) {
3247
3248
  opts.driver.segvSpin = value;
3249
  opts.driver.segvSpinWasSetByUser = true;
3250
  Trace("options") << "user assigned option segvSpin = " << value << std::endl;
3251
}
3252
3253
void assign_driver_version(Options& opts, const std::string& option, bool value) {
3254
3255
  opts.driver.version = value;
3256
  opts.driver.versionWasSetByUser = true;
3257
  Trace("options") << "user assigned option version = " << value << std::endl;
3258
}
3259
3260
void assign_parser_filesystemAccess(Options& opts, const std::string& option, bool value) {
3261
3262
  opts.parser.filesystemAccess = value;
3263
  opts.parser.filesystemAccessWasSetByUser = true;
3264
  Trace("options") << "user assigned option filesystemAccess = " << value << std::endl;
3265
}
3266
3267
9
void assign_parser_forceLogicString(Options& opts, const std::string& option, const std::string& optionarg) {
3268
18
  auto value = handleOption<std::string>("force-logic", option, optionarg);
3269
3270
9
  opts.parser.forceLogicString = value;
3271
9
  opts.parser.forceLogicStringWasSetByUser = true;
3272
9
  Trace("options") << "user assigned option forceLogicString = " << value << std::endl;
3273
9
}
3274
3275
19
void assign_parser_globalDeclarations(Options& opts, const std::string& option, bool value) {
3276
3277
19
  opts.parser.globalDeclarations = value;
3278
19
  opts.parser.globalDeclarationsWasSetByUser = true;
3279
19
  Trace("options") << "user assigned option globalDeclarations = " << value << std::endl;
3280
19
}
3281
3282
void assign_parser_memoryMap(Options& opts, const std::string& option, bool value) {
3283
3284
  opts.parser.memoryMap = value;
3285
  opts.parser.memoryMapWasSetByUser = true;
3286
  Trace("options") << "user assigned option memoryMap = " << value << std::endl;
3287
}
3288
3289
void assign_parser_semanticChecks(Options& opts, const std::string& option, bool value) {
3290
3291
  opts.parser.semanticChecks = value;
3292
  opts.parser.semanticChecksWasSetByUser = true;
3293
  Trace("options") << "user assigned option semanticChecks = " << value << std::endl;
3294
}
3295
3296
9
void assign_parser_strictParsing(Options& opts, const std::string& option, bool value) {
3297
3298
9
  opts.parser.strictParsing = value;
3299
9
  opts.parser.strictParsingWasSetByUser = true;
3300
9
  Trace("options") << "user assigned option strictParsing = " << value << std::endl;
3301
9
}
3302
3303
void assign_printer_flattenHOChains(Options& opts, const std::string& option, bool value) {
3304
3305
  opts.printer.flattenHOChains = value;
3306
  opts.printer.flattenHOChainsWasSetByUser = true;
3307
  Trace("options") << "user assigned option flattenHOChains = " << value << std::endl;
3308
}
3309
3310
void assign_printer_instFormatMode(Options& opts, const std::string& option, const std::string& optionarg) {
3311
  auto value = opts.handler().stringToInstFormatMode("inst-format", option, optionarg);
3312
3313
  opts.printer.instFormatMode = value;
3314
  opts.printer.instFormatModeWasSetByUser = true;
3315
  Trace("options") << "user assigned option instFormatMode = " << value << std::endl;
3316
}
3317
3318
void assign_printer_modelFormatMode(Options& opts, const std::string& option, const std::string& optionarg) {
3319
  auto value = stringToModelFormatMode(optionarg);
3320
3321
  opts.printer.modelFormatMode = value;
3322
  opts.printer.modelFormatModeWasSetByUser = true;
3323
  Trace("options") << "user assigned option modelFormatMode = " << value << std::endl;
3324
}
3325
3326
12
void assign_printer_printInstFull(Options& opts, const std::string& option, bool value) {
3327
3328
12
  opts.printer.printInstFull = value;
3329
12
  opts.printer.printInstFullWasSetByUser = true;
3330
12
  Trace("options") << "user assigned option printInstFull = " << value << std::endl;
3331
12
}
3332
3333
3
void assign_printer_printInstMode(Options& opts, const std::string& option, const std::string& optionarg) {
3334
3
  auto value = stringToPrintInstMode(optionarg);
3335
3336
3
  opts.printer.printInstMode = value;
3337
3
  opts.printer.printInstModeWasSetByUser = true;
3338
3
  Trace("options") << "user assigned option printInstMode = " << value << std::endl;
3339
3
}
3340
3341
2
void assign_proof_proofEagerChecking(Options& opts, const std::string& option, bool value) {
3342
3343
2
  opts.proof.proofEagerChecking = value;
3344
2
  opts.proof.proofEagerCheckingWasSetByUser = true;
3345
2
  Trace("options") << "user assigned option proofEagerChecking = " << value << std::endl;
3346
2
}
3347
3348
void assign_proof_proofFormatMode(Options& opts, const std::string& option, const std::string& optionarg) {
3349
  auto value = stringToProofFormatMode(optionarg);
3350
3351
  opts.proof.proofFormatMode = value;
3352
  opts.proof.proofFormatModeWasSetByUser = true;
3353
  Trace("options") << "user assigned option proofFormatMode = " << value << std::endl;
3354
}
3355
3356
void assign_proof_proofGranularityMode(Options& opts, const std::string& option, const std::string& optionarg) {
3357
  auto value = stringToProofGranularityMode(optionarg);
3358
3359
  opts.proof.proofGranularityMode = value;
3360
  opts.proof.proofGranularityModeWasSetByUser = true;
3361
  Trace("options") << "user assigned option proofGranularityMode = " << value << std::endl;
3362
}
3363
3364
void assign_proof_proofPedantic(Options& opts, const std::string& option, const std::string& optionarg) {
3365
  auto value = handleOption<uint64_t>("proof-pedantic", option, optionarg);
3366
3367
  opts.proof.proofPedantic = value;
3368
  opts.proof.proofPedanticWasSetByUser = true;
3369
  Trace("options") << "user assigned option proofPedantic = " << value << std::endl;
3370
}
3371
3372
void assign_proof_proofPrintConclusion(Options& opts, const std::string& option, bool value) {
3373
3374
  opts.proof.proofPrintConclusion = value;
3375
  opts.proof.proofPrintConclusionWasSetByUser = true;
3376
  Trace("options") << "user assigned option proofPrintConclusion = " << value << std::endl;
3377
}
3378
3379
void assign_prop_minisatDumpDimacs(Options& opts, const std::string& option, bool value) {
3380
3381
  opts.prop.minisatDumpDimacs = value;
3382
  opts.prop.minisatDumpDimacsWasSetByUser = true;
3383
  Trace("options") << "user assigned option minisatDumpDimacs = " << value << std::endl;
3384
}
3385
3386
void assign_prop_minisatUseElim(Options& opts, const std::string& option, bool value) {
3387
3388
  opts.prop.minisatUseElim = value;
3389
  opts.prop.minisatUseElimWasSetByUser = true;
3390
  Trace("options") << "user assigned option minisatUseElim = " << value << std::endl;
3391
}
3392
3393
void assign_prop_satRandomFreq(Options& opts, const std::string& option, const std::string& optionarg) {
3394
  auto value = handleOption<double>("random-freq", option, optionarg);
3395
  opts.handler().checkMinimum("random-freq", option, value, static_cast<double>(0.0));
3396
opts.handler().checkMaximum("random-freq", option, value, static_cast<double>(1.0));
3397
  opts.prop.satRandomFreq = value;
3398
  opts.prop.satRandomFreqWasSetByUser = true;
3399
  Trace("options") << "user assigned option satRandomFreq = " << value << std::endl;
3400
}
3401
3402
2
void assign_prop_satRandomSeed(Options& opts, const std::string& option, const std::string& optionarg) {
3403
2
  auto value = handleOption<uint64_t>("random-seed", option, optionarg);
3404
3405
2
  opts.prop.satRandomSeed = value;
3406
2
  opts.prop.satRandomSeedWasSetByUser = true;
3407
2
  Trace("options") << "user assigned option satRandomSeed = " << value << std::endl;
3408
2
}
3409
3410
void assign_prop_sat_refine_conflicts(Options& opts, const std::string& option, bool value) {
3411
3412
  opts.prop.sat_refine_conflicts = value;
3413
  opts.prop.sat_refine_conflictsWasSetByUser = true;
3414
  Trace("options") << "user assigned option sat_refine_conflicts = " << value << std::endl;
3415
}
3416
3417
void assign_prop_satRestartFirst(Options& opts, const std::string& option, const std::string& optionarg) {
3418
  auto value = handleOption<uint64_t>("restart-int-base", option, optionarg);
3419
3420
  opts.prop.satRestartFirst = value;
3421
  opts.prop.satRestartFirstWasSetByUser = true;
3422
  Trace("options") << "user assigned option satRestartFirst = " << value << std::endl;
3423
}
3424
3425
void assign_prop_satRestartInc(Options& opts, const std::string& option, const std::string& optionarg) {
3426
  auto value = handleOption<double>("restart-int-inc", option, optionarg);
3427
  opts.handler().checkMinimum("restart-int-inc", option, value, static_cast<double>(0.0));
3428
  opts.prop.satRestartInc = value;
3429
  opts.prop.satRestartIncWasSetByUser = true;
3430
  Trace("options") << "user assigned option satRestartInc = " << value << std::endl;
3431
}
3432
3433
4
void assign_quantifiers_aggressiveMiniscopeQuant(Options& opts, const std::string& option, bool value) {
3434
3435
4
  opts.quantifiers.aggressiveMiniscopeQuant = value;
3436
4
  opts.quantifiers.aggressiveMiniscopeQuantWasSetByUser = true;
3437
4
  Trace("options") << "user assigned option aggressiveMiniscopeQuant = " << value << std::endl;
3438
4
}
3439
3440
3
void assign_quantifiers_cegisSample(Options& opts, const std::string& option, const std::string& optionarg) {
3441
3
  auto value = stringToCegisSampleMode(optionarg);
3442
3443
3
  opts.quantifiers.cegisSample = value;
3444
3
  opts.quantifiers.cegisSampleWasSetByUser = true;
3445
3
  Trace("options") << "user assigned option cegisSample = " << value << std::endl;
3446
3
}
3447
3448
19
void assign_quantifiers_cegqi(Options& opts, const std::string& option, bool value) {
3449
3450
19
  opts.quantifiers.cegqi = value;
3451
19
  opts.quantifiers.cegqiWasSetByUser = true;
3452
19
  Trace("options") << "user assigned option cegqi = " << value << std::endl;
3453
19
}
3454
3455
18
void assign_quantifiers_cegqiAll(Options& opts, const std::string& option, bool value) {
3456
3457
18
  opts.quantifiers.cegqiAll = value;
3458
18
  opts.quantifiers.cegqiAllWasSetByUser = true;
3459
18
  Trace("options") << "user assigned option cegqiAll = " << value << std::endl;
3460
18
}
3461
3462
106
void assign_quantifiers_cegqiBv(Options& opts, const std::string& option, bool value) {
3463
3464
106
  opts.quantifiers.cegqiBv = value;
3465
106
  opts.quantifiers.cegqiBvWasSetByUser = true;
3466
106
  Trace("options") << "user assigned option cegqiBv = " << value << std::endl;
3467
106
}
3468
3469
void assign_quantifiers_cegqiBvConcInv(Options& opts, const std::string& option, bool value) {
3470
3471
  opts.quantifiers.cegqiBvConcInv = value;
3472
  opts.quantifiers.cegqiBvConcInvWasSetByUser = true;
3473
  Trace("options") << "user assigned option cegqiBvConcInv = " << value << std::endl;
3474
}
3475
3476
82
void assign_quantifiers_cegqiBvIneqMode(Options& opts, const std::string& option, const std::string& optionarg) {
3477
82
  auto value = stringToCegqiBvIneqMode(optionarg);
3478
3479
82
  opts.quantifiers.cegqiBvIneqMode = value;
3480
82
  opts.quantifiers.cegqiBvIneqModeWasSetByUser = true;
3481
82
  Trace("options") << "user assigned option cegqiBvIneqMode = " << value << std::endl;
3482
82
}
3483
3484
void assign_quantifiers_cegqiBvInterleaveValue(Options& opts, const std::string& option, bool value) {
3485
3486
  opts.quantifiers.cegqiBvInterleaveValue = value;
3487
  opts.quantifiers.cegqiBvInterleaveValueWasSetByUser = true;
3488
  Trace("options") << "user assigned option cegqiBvInterleaveValue = " << value << std::endl;
3489
}
3490
3491
void assign_quantifiers_cegqiBvLinearize(Options& opts, const std::string& option, bool value) {
3492
3493
  opts.quantifiers.cegqiBvLinearize = value;
3494
  opts.quantifiers.cegqiBvLinearizeWasSetByUser = true;
3495
  Trace("options") << "user assigned option cegqiBvLinearize = " << value << std::endl;
3496
}
3497
3498
2
void assign_quantifiers_cegqiBvRmExtract(Options& opts, const std::string& option, bool value) {
3499
3500
2
  opts.quantifiers.cegqiBvRmExtract = value;
3501
2
  opts.quantifiers.cegqiBvRmExtractWasSetByUser = true;
3502
2
  Trace("options") << "user assigned option cegqiBvRmExtract = " << value << std::endl;
3503
2
}
3504
3505
void assign_quantifiers_cegqiBvSolveNl(Options& opts, const std::string& option, bool value) {
3506
3507
  opts.quantifiers.cegqiBvSolveNl = value;
3508
  opts.quantifiers.cegqiBvSolveNlWasSetByUser = true;
3509
  Trace("options") << "user assigned option cegqiBvSolveNl = " << value << std::endl;
3510
}
3511
3512
599
void assign_quantifiers_cegqiFullEffort(Options& opts, const std::string& option, bool value) {
3513
3514
599
  opts.quantifiers.cegqiFullEffort = value;
3515
599
  opts.quantifiers.cegqiFullEffortWasSetByUser = true;
3516
599
  Trace("options") << "user assigned option cegqiFullEffort = " << value << std::endl;
3517
599
}
3518
3519
void assign_quantifiers_cegqiInnermost(Options& opts, const std::string& option, bool value) {
3520
3521
  opts.quantifiers.cegqiInnermost = value;
3522
  opts.quantifiers.cegqiInnermostWasSetByUser = true;
3523
  Trace("options") << "user assigned option cegqiInnermost = " << value << std::endl;
3524
}
3525
3526
void assign_quantifiers_cegqiMidpoint(Options& opts, const std::string& option, bool value) {
3527
3528
  opts.quantifiers.cegqiMidpoint = value;
3529
  opts.quantifiers.cegqiMidpointWasSetByUser = true;
3530
  Trace("options") << "user assigned option cegqiMidpoint = " << value << std::endl;
3531
}
3532
3533
void assign_quantifiers_cegqiMinBounds(Options& opts, const std::string& option, bool value) {
3534
3535
  opts.quantifiers.cegqiMinBounds = value;
3536
  opts.quantifiers.cegqiMinBoundsWasSetByUser = true;
3537
  Trace("options") << "user assigned option cegqiMinBounds = " << value << std::endl;
3538
}
3539
3540
void assign_quantifiers_cegqiModel(Options& opts, const std::string& option, bool value) {
3541
3542
  opts.quantifiers.cegqiModel = value;
3543
  opts.quantifiers.cegqiModelWasSetByUser = true;
3544
  Trace("options") << "user assigned option cegqiModel = " << value << std::endl;
3545
}
3546
3547
3
void assign_quantifiers_cegqiMultiInst(Options& opts, const std::string& option, bool value) {
3548
3549
3
  opts.quantifiers.cegqiMultiInst = value;
3550
3
  opts.quantifiers.cegqiMultiInstWasSetByUser = true;
3551
3
  Trace("options") << "user assigned option cegqiMultiInst = " << value << std::endl;
3552
3
}
3553
3554
19
void assign_quantifiers_cegqiNestedQE(Options& opts, const std::string& option, bool value) {
3555
3556
19
  opts.quantifiers.cegqiNestedQE = value;
3557
19
  opts.quantifiers.cegqiNestedQEWasSetByUser = true;
3558
19
  Trace("options") << "user assigned option cegqiNestedQE = " << value << std::endl;
3559
19
}
3560
3561
void assign_quantifiers_cegqiNopt(Options& opts, const std::string& option, bool value) {
3562
3563
  opts.quantifiers.cegqiNopt = value;
3564
  opts.quantifiers.cegqiNoptWasSetByUser = true;
3565
  Trace("options") << "user assigned option cegqiNopt = " << value << std::endl;
3566
}
3567
3568
void assign_quantifiers_cegqiRepeatLit(Options& opts, const std::string& option, bool value) {
3569
3570
  opts.quantifiers.cegqiRepeatLit = value;
3571
  opts.quantifiers.cegqiRepeatLitWasSetByUser = true;
3572
  Trace("options") << "user assigned option cegqiRepeatLit = " << value << std::endl;
3573
}
3574
3575
void assign_quantifiers_cegqiRoundUpLowerLia(Options& opts, const std::string& option, bool value) {
3576
3577
  opts.quantifiers.cegqiRoundUpLowerLia = value;
3578
  opts.quantifiers.cegqiRoundUpLowerLiaWasSetByUser = true;
3579
  Trace("options") << "user assigned option cegqiRoundUpLowerLia = " << value << std::endl;
3580
}
3581
3582
void assign_quantifiers_cegqiSat(Options& opts, const std::string& option, bool value) {
3583
3584
  opts.quantifiers.cegqiSat = value;
3585
  opts.quantifiers.cegqiSatWasSetByUser = true;
3586
  Trace("options") << "user assigned option cegqiSat = " << value << std::endl;
3587
}
3588
3589
6
void assign_quantifiers_cegqiUseInfInt(Options& opts, const std::string& option, bool value) {
3590
3591
6
  opts.quantifiers.cegqiUseInfInt = value;
3592
6
  opts.quantifiers.cegqiUseInfIntWasSetByUser = true;
3593
6
  Trace("options") << "user assigned option cegqiUseInfInt = " << value << std::endl;
3594
6
}
3595
3596
6
void assign_quantifiers_cegqiUseInfReal(Options& opts, const std::string& option, bool value) {
3597
3598
6
  opts.quantifiers.cegqiUseInfReal = value;
3599
6
  opts.quantifiers.cegqiUseInfRealWasSetByUser = true;
3600
6
  Trace("options") << "user assigned option cegqiUseInfReal = " << value << std::endl;
3601
6
}
3602
3603
void assign_quantifiers_condVarSplitQuantAgg(Options& opts, const std::string& option, bool value) {
3604
3605
  opts.quantifiers.condVarSplitQuantAgg = value;
3606
  opts.quantifiers.condVarSplitQuantAggWasSetByUser = true;
3607
  Trace("options") << "user assigned option condVarSplitQuantAgg = " << value << std::endl;
3608
}
3609
3610
void assign_quantifiers_condVarSplitQuant(Options& opts, const std::string& option, bool value) {
3611
3612
  opts.quantifiers.condVarSplitQuant = value;
3613
  opts.quantifiers.condVarSplitQuantWasSetByUser = true;
3614
  Trace("options") << "user assigned option condVarSplitQuant = " << value << std::endl;
3615
}
3616
3617
void assign_quantifiers_conjectureFilterActiveTerms(Options& opts, const std::string& option, bool value) {
3618
3619
  opts.quantifiers.conjectureFilterActiveTerms = value;
3620
  opts.quantifiers.conjectureFilterActiveTermsWasSetByUser = true;
3621
  Trace("options") << "user assigned option conjectureFilterActiveTerms = " << value << std::endl;
3622
}
3623
3624
void assign_quantifiers_conjectureFilterCanonical(Options& opts, const std::string& option, bool value) {
3625
3626
  opts.quantifiers.conjectureFilterCanonical = value;
3627
  opts.quantifiers.conjectureFilterCanonicalWasSetByUser = true;
3628
  Trace("options") << "user assigned option conjectureFilterCanonical = " << value << std::endl;
3629
}
3630
3631
2
void assign_quantifiers_conjectureFilterModel(Options& opts, const std::string& option, bool value) {
3632
3633
2
  opts.quantifiers.conjectureFilterModel = value;
3634
2
  opts.quantifiers.conjectureFilterModelWasSetByUser = true;
3635
2
  Trace("options") << "user assigned option conjectureFilterModel = " << value << std::endl;
3636
2
}
3637
3638
7
void assign_quantifiers_conjectureGen(Options& opts, const std::string& option, bool value) {
3639
3640
7
  opts.quantifiers.conjectureGen = value;
3641
7
  opts.quantifiers.conjectureGenWasSetByUser = true;
3642
7
  Trace("options") << "user assigned option conjectureGen = " << value << std::endl;
3643
7
}
3644
3645
void assign_quantifiers_conjectureGenGtEnum(Options& opts, const std::string& option, const std::string& optionarg) {
3646
  auto value = handleOption<int64_t>("conjecture-gen-gt-enum", option, optionarg);
3647
3648
  opts.quantifiers.conjectureGenGtEnum = value;
3649
  opts.quantifiers.conjectureGenGtEnumWasSetByUser = true;
3650
  Trace("options") << "user assigned option conjectureGenGtEnum = " << value << std::endl;
3651
}
3652
3653
void assign_quantifiers_conjectureGenMaxDepth(Options& opts, const std::string& option, const std::string& optionarg) {
3654
  auto value = handleOption<int64_t>("conjecture-gen-max-depth", option, optionarg);
3655
3656
  opts.quantifiers.conjectureGenMaxDepth = value;
3657
  opts.quantifiers.conjectureGenMaxDepthWasSetByUser = true;
3658
  Trace("options") << "user assigned option conjectureGenMaxDepth = " << value << std::endl;
3659
}
3660
3661
void assign_quantifiers_conjectureGenPerRound(Options& opts, const std::string& option, const std::string& optionarg) {
3662
  auto value = handleOption<int64_t>("conjecture-gen-per-round", option, optionarg);
3663
3664
  opts.quantifiers.conjectureGenPerRound = value;
3665
  opts.quantifiers.conjectureGenPerRoundWasSetByUser = true;
3666
  Trace("options") << "user assigned option conjectureGenPerRound = " << value << std::endl;
3667
}
3668
3669
void assign_quantifiers_conjectureUeeIntro(Options& opts, const std::string& option, bool value) {
3670
3671
  opts.quantifiers.conjectureUeeIntro = value;
3672
  opts.quantifiers.conjectureUeeIntroWasSetByUser = true;
3673
  Trace("options") << "user assigned option conjectureUeeIntro = " << value << std::endl;
3674
}
3675
3676
2
void assign_quantifiers_conjectureNoFilter(Options& opts, const std::string& option, bool value) {
3677
3678
2
  opts.quantifiers.conjectureNoFilter = value;
3679
2
  opts.quantifiers.conjectureNoFilterWasSetByUser = true;
3680
2
  Trace("options") << "user assigned option conjectureNoFilter = " << value << std::endl;
3681
2
}
3682
3683
void assign_quantifiers_dtStcInduction(Options& opts, const std::string& option, bool value) {
3684
3685
  opts.quantifiers.dtStcInduction = value;
3686
  opts.quantifiers.dtStcInductionWasSetByUser = true;
3687
  Trace("options") << "user assigned option dtStcInduction = " << value << std::endl;
3688
}
3689
3690
void assign_quantifiers_dtVarExpandQuant(Options& opts, const std::string& option, bool value) {
3691
3692
  opts.quantifiers.dtVarExpandQuant = value;
3693
  opts.quantifiers.dtVarExpandQuantWasSetByUser = true;
3694
  Trace("options") << "user assigned option dtVarExpandQuant = " << value << std::endl;
3695
}
3696
3697
1
void assign_quantifiers_eMatching(Options& opts, const std::string& option, bool value) {
3698
3699
1
  opts.quantifiers.eMatching = value;
3700
1
  opts.quantifiers.eMatchingWasSetByUser = true;
3701
1
  Trace("options") << "user assigned option eMatching = " << value << std::endl;
3702
1
}
3703
3704
void assign_quantifiers_elimTautQuant(Options& opts, const std::string& option, bool value) {
3705
3706
  opts.quantifiers.elimTautQuant = value;
3707
  opts.quantifiers.elimTautQuantWasSetByUser = true;
3708
  Trace("options") << "user assigned option elimTautQuant = " << value << std::endl;
3709
}
3710
3711
11
void assign_quantifiers_extRewriteQuant(Options& opts, const std::string& option, bool value) {
3712
3713
11
  opts.quantifiers.extRewriteQuant = value;
3714
11
  opts.quantifiers.extRewriteQuantWasSetByUser = true;
3715
11
  Trace("options") << "user assigned option extRewriteQuant = " << value << std::endl;
3716
11
}
3717
3718
176
void assign_quantifiers_finiteModelFind(Options& opts, const std::string& option, bool value) {
3719
3720
176
  opts.quantifiers.finiteModelFind = value;
3721
176
  opts.quantifiers.finiteModelFindWasSetByUser = true;
3722
176
  Trace("options") << "user assigned option finiteModelFind = " << value << std::endl;
3723
176
}
3724
3725
44
void assign_quantifiers_fmfBound(Options& opts, const std::string& option, bool value) {
3726
3727
44
  opts.quantifiers.fmfBound = value;
3728
44
  opts.quantifiers.fmfBoundWasSetByUser = true;
3729
44
  Trace("options") << "user assigned option fmfBound = " << value << std::endl;
3730
44
}
3731
3732
12
void assign_quantifiers_fmfBoundInt(Options& opts, const std::string& option, bool value) {
3733
3734
12
  opts.quantifiers.fmfBoundInt = value;
3735
12
  opts.quantifiers.fmfBoundIntWasSetByUser = true;
3736
12
  Trace("options") << "user assigned option fmfBoundInt = " << value << std::endl;
3737
12
}
3738
3739
3
void assign_quantifiers_fmfBoundLazy(Options& opts, const std::string& option, bool value) {
3740
3741
3
  opts.quantifiers.fmfBoundLazy = value;
3742
3
  opts.quantifiers.fmfBoundLazyWasSetByUser = true;
3743
3
  Trace("options") << "user assigned option fmfBoundLazy = " << value << std::endl;
3744
3
}
3745
3746
void assign_quantifiers_fmfFmcSimple(Options& opts, const std::string& option, bool value) {
3747
3748
  opts.quantifiers.fmfFmcSimple = value;
3749
  opts.quantifiers.fmfFmcSimpleWasSetByUser = true;
3750
  Trace("options") << "user assigned option fmfFmcSimple = " << value << std::endl;
3751
}
3752
3753
void assign_quantifiers_fmfFreshDistConst(Options& opts, const std::string& option, bool value) {
3754
3755
  opts.quantifiers.fmfFreshDistConst = value;
3756
  opts.quantifiers.fmfFreshDistConstWasSetByUser = true;
3757
  Trace("options") << "user assigned option fmfFreshDistConst = " << value << std::endl;
3758
}
3759
3760
51
void assign_quantifiers_fmfFunWellDefined(Options& opts, const std::string& option, bool value) {
3761
3762
51
  opts.quantifiers.fmfFunWellDefined = value;
3763
51
  opts.quantifiers.fmfFunWellDefinedWasSetByUser = true;
3764
51
  Trace("options") << "user assigned option fmfFunWellDefined = " << value << std::endl;
3765
51
}
3766
3767
10
void assign_quantifiers_fmfFunWellDefinedRelevant(Options& opts, const std::string& option, bool value) {
3768
3769
10
  opts.quantifiers.fmfFunWellDefinedRelevant = value;
3770
10
  opts.quantifiers.fmfFunWellDefinedRelevantWasSetByUser = true;
3771
10
  Trace("options") << "user assigned option fmfFunWellDefinedRelevant = " << value << std::endl;
3772
10
}
3773
3774
7
void assign_quantifiers_fmfInstEngine(Options& opts, const std::string& option, bool value) {
3775
3776
7
  opts.quantifiers.fmfInstEngine = value;
3777
7
  opts.quantifiers.fmfInstEngineWasSetByUser = true;
3778
7
  Trace("options") << "user assigned option fmfInstEngine = " << value << std::endl;
3779
7
}
3780
3781
void assign_quantifiers_fmfTypeCompletionThresh(Options& opts, const std::string& option, const std::string& optionarg) {
3782
  auto value = handleOption<int64_t>("fmf-type-completion-thresh", option, optionarg);
3783
3784
  opts.quantifiers.fmfTypeCompletionThresh = value;
3785
  opts.quantifiers.fmfTypeCompletionThreshWasSetByUser = true;
3786
  Trace("options") << "user assigned option fmfTypeCompletionThresh = " << value << std::endl;
3787
}
3788
3789
void assign_quantifiers_fullSaturateInterleave(Options& opts, const std::string& option, bool value) {
3790
3791
  opts.quantifiers.fullSaturateInterleave = value;
3792
  opts.quantifiers.fullSaturateInterleaveWasSetByUser = true;
3793
  Trace("options") << "user assigned option fullSaturateInterleave = " << value << std::endl;
3794
}
3795
3796
3
void assign_quantifiers_fullSaturateStratify(Options& opts, const std::string& option, bool value) {
3797
3798
3
  opts.quantifiers.fullSaturateStratify = value;
3799
3
  opts.quantifiers.fullSaturateStratifyWasSetByUser = true;
3800
3
  Trace("options") << "user assigned option fullSaturateStratify = " << value << std::endl;
3801
3
}
3802
3803
void assign_quantifiers_fullSaturateSum(Options& opts, const std::string& option, bool value) {
3804
3805
  opts.quantifiers.fullSaturateSum = value;
3806
  opts.quantifiers.fullSaturateSumWasSetByUser = true;
3807
  Trace("options") << "user assigned option fullSaturateSum = " << value << std::endl;
3808
}
3809
3810
76
void assign_quantifiers_fullSaturateQuant(Options& opts, const std::string& option, bool value) {
3811
3812
76
  opts.quantifiers.fullSaturateQuant = value;
3813
76
  opts.quantifiers.fullSaturateQuantWasSetByUser = true;
3814
76
  Trace("options") << "user assigned option fullSaturateQuant = " << value << std::endl;
3815
76
}
3816
3817
3
void assign_quantifiers_fullSaturateLimit(Options& opts, const std::string& option, const std::string& optionarg) {
3818
3
  auto value = handleOption<int64_t>("full-saturate-quant-limit", option, optionarg);
3819
3820
3
  opts.quantifiers.fullSaturateLimit = value;
3821
3
  opts.quantifiers.fullSaturateLimitWasSetByUser = true;
3822
3
  Trace("options") << "user assigned option fullSaturateLimit = " << value << std::endl;
3823
3
}
3824
3825
void assign_quantifiers_fullSaturateQuantRd(Options& opts, const std::string& option, bool value) {
3826
3827
  opts.quantifiers.fullSaturateQuantRd = value;
3828
  opts.quantifiers.fullSaturateQuantRdWasSetByUser = true;
3829
  Trace("options") << "user assigned option fullSaturateQuantRd = " << value << std::endl;
3830
}
3831
3832
8
void assign_quantifiers_globalNegate(Options& opts, const std::string& option, bool value) {
3833
3834
8
  opts.quantifiers.globalNegate = value;
3835
8
  opts.quantifiers.globalNegateWasSetByUser = true;
3836
8
  Trace("options") << "user assigned option globalNegate = " << value << std::endl;
3837
8
}
3838
3839
8
void assign_quantifiers_hoElim(Options& opts, const std::string& option, bool value) {
3840
3841
8
  opts.quantifiers.hoElim = value;
3842
8
  opts.quantifiers.hoElimWasSetByUser = true;
3843
8
  Trace("options") << "user assigned option hoElim = " << value << std::endl;
3844
8
}
3845
3846
1
void assign_quantifiers_hoElimStoreAx(Options& opts, const std::string& option, bool value) {
3847
3848
1
  opts.quantifiers.hoElimStoreAx = value;
3849
1
  opts.quantifiers.hoElimStoreAxWasSetByUser = true;
3850
1
  Trace("options") << "user assigned option hoElimStoreAx = " << value << std::endl;
3851
1
}
3852
3853
void assign_quantifiers_hoMatching(Options& opts, const std::string& option, bool value) {
3854
3855
  opts.quantifiers.hoMatching = value;
3856
  opts.quantifiers.hoMatchingWasSetByUser = true;
3857
  Trace("options") << "user assigned option hoMatching = " << value << std::endl;
3858
}
3859
3860
void assign_quantifiers_hoMatchingVarArgPriority(Options& opts, const std::string& option, bool value) {
3861
3862
  opts.quantifiers.hoMatchingVarArgPriority = value;
3863
  opts.quantifiers.hoMatchingVarArgPriorityWasSetByUser = true;
3864
  Trace("options") << "user assigned option hoMatchingVarArgPriority = " << value << std::endl;
3865
}
3866
3867
void assign_quantifiers_hoMergeTermDb(Options& opts, const std::string& option, bool value) {
3868
3869
  opts.quantifiers.hoMergeTermDb = value;
3870
  opts.quantifiers.hoMergeTermDbWasSetByUser = true;
3871
  Trace("options") << "user assigned option hoMergeTermDb = " << value << std::endl;
3872
}
3873
3874
void assign_quantifiers_incrementTriggers(Options& opts, const std::string& option, bool value) {
3875
3876
  opts.quantifiers.incrementTriggers = value;
3877
  opts.quantifiers.incrementTriggersWasSetByUser = true;
3878
  Trace("options") << "user assigned option incrementTriggers = " << value << std::endl;
3879
}
3880
3881
void assign_quantifiers_instLevelInputOnly(Options& opts, const std::string& option, bool value) {
3882
3883
  opts.quantifiers.instLevelInputOnly = value;
3884
  opts.quantifiers.instLevelInputOnlyWasSetByUser = true;
3885
  Trace("options") << "user assigned option instLevelInputOnly = " << value << std::endl;
3886
}
3887
3888
3
void assign_quantifiers_instMaxLevel(Options& opts, const std::string& option, const std::string& optionarg) {
3889
3
  auto value = handleOption<int64_t>("inst-max-level", option, optionarg);
3890
3891
3
  opts.quantifiers.instMaxLevel = value;
3892
3
  opts.quantifiers.instMaxLevelWasSetByUser = true;
3893
3
  Trace("options") << "user assigned option instMaxLevel = " << value << std::endl;
3894
3
}
3895
3896
void assign_quantifiers_instMaxRounds(Options& opts, const std::string& option, const std::string& optionarg) {
3897
  auto value = handleOption<int64_t>("inst-max-rounds", option, optionarg);
3898
3899
  opts.quantifiers.instMaxRounds = value;
3900
  opts.quantifiers.instMaxRoundsWasSetByUser = true;
3901
  Trace("options") << "user assigned option instMaxRounds = " << value << std::endl;
3902
}
3903
3904
void assign_quantifiers_instNoEntail(Options& opts, const std::string& option, bool value) {
3905
3906
  opts.quantifiers.instNoEntail = value;
3907
  opts.quantifiers.instNoEntailWasSetByUser = true;
3908
  Trace("options") << "user assigned option instNoEntail = " << value << std::endl;
3909
}
3910
3911
void assign_quantifiers_instWhenPhase(Options& opts, const std::string& option, const std::string& optionarg) {
3912
  auto value = handleOption<int64_t>("inst-when-phase", option, optionarg);
3913
3914
  opts.quantifiers.instWhenPhase = value;
3915
  opts.quantifiers.instWhenPhaseWasSetByUser = true;
3916
  Trace("options") << "user assigned option instWhenPhase = " << value << std::endl;
3917
}
3918
3919
void assign_quantifiers_instWhenStrictInterleave(Options& opts, const std::string& option, bool value) {
3920
3921
  opts.quantifiers.instWhenStrictInterleave = value;
3922
  opts.quantifiers.instWhenStrictInterleaveWasSetByUser = true;
3923
  Trace("options") << "user assigned option instWhenStrictInterleave = " << value << std::endl;
3924
}
3925
3926
void assign_quantifiers_instWhenTcFirst(Options& opts, const std::string& option, bool value) {
3927
3928
  opts.quantifiers.instWhenTcFirst = value;
3929
  opts.quantifiers.instWhenTcFirstWasSetByUser = true;
3930
  Trace("options") << "user assigned option instWhenTcFirst = " << value << std::endl;
3931
}
3932
3933
3
void assign_quantifiers_instWhenMode(Options& opts, const std::string& option, const std::string& optionarg) {
3934
3
  auto value = stringToInstWhenMode(optionarg);
3935
3
  opts.handler().checkInstWhenMode("inst-when", option, value);
3936
3
  opts.quantifiers.instWhenMode = value;
3937
3
  opts.quantifiers.instWhenModeWasSetByUser = true;
3938
3
  Trace("options") << "user assigned option instWhenMode = " << value << std::endl;
3939
3
}
3940
3941
5
void assign_quantifiers_intWfInduction(Options& opts, const std::string& option, bool value) {
3942
3943
5
  opts.quantifiers.intWfInduction = value;
3944
5
  opts.quantifiers.intWfInductionWasSetByUser = true;
3945
5
  Trace("options") << "user assigned option intWfInduction = " << value << std::endl;
3946
5
}
3947
3948
void assign_quantifiers_iteDtTesterSplitQuant(Options& opts, const std::string& option, bool value) {
3949
3950
  opts.quantifiers.iteDtTesterSplitQuant = value;
3951
  opts.quantifiers.iteDtTesterSplitQuantWasSetByUser = true;
3952
  Trace("options") << "user assigned option iteDtTesterSplitQuant = " << value << std::endl;
3953
}
3954
3955
void assign_quantifiers_iteLiftQuant(Options& opts, const std::string& option, const std::string& optionarg) {
3956
  auto value = stringToIteLiftQuantMode(optionarg);
3957
3958
  opts.quantifiers.iteLiftQuant = value;
3959
  opts.quantifiers.iteLiftQuantWasSetByUser = true;
3960
  Trace("options") << "user assigned option iteLiftQuant = " << value << std::endl;
3961
}
3962
3963
void assign_quantifiers_literalMatchMode(Options& opts, const std::string& option, const std::string& optionarg) {
3964
  auto value = stringToLiteralMatchMode(optionarg);
3965
3966
  opts.quantifiers.literalMatchMode = value;
3967
  opts.quantifiers.literalMatchModeWasSetByUser = true;
3968
  Trace("options") << "user assigned option literalMatchMode = " << value << std::endl;
3969
}
3970
3971
17
void assign_quantifiers_macrosQuant(Options& opts, const std::string& option, bool value) {
3972
3973
17
  opts.quantifiers.macrosQuant = value;
3974
17
  opts.quantifiers.macrosQuantWasSetByUser = true;
3975
17
  Trace("options") << "user assigned option macrosQuant = " << value << std::endl;
3976
17
}
3977
3978
2
void assign_quantifiers_macrosQuantMode(Options& opts, const std::string& option, const std::string& optionarg) {
3979
2
  auto value = stringToMacrosQuantMode(optionarg);
3980
3981
2
  opts.quantifiers.macrosQuantMode = value;
3982
2
  opts.quantifiers.macrosQuantModeWasSetByUser = true;
3983
2
  Trace("options") << "user assigned option macrosQuantMode = " << value << std::endl;
3984
2
}
3985
3986
void assign_quantifiers_mbqiInterleave(Options& opts, const std::string& option, bool value) {
3987
3988
  opts.quantifiers.mbqiInterleave = value;
3989
  opts.quantifiers.mbqiInterleaveWasSetByUser = true;
3990
  Trace("options") << "user assigned option mbqiInterleave = " << value << std::endl;
3991
}
3992
3993
void assign_quantifiers_fmfOneInstPerRound(Options& opts, const std::string& option, bool value) {
3994
3995
  opts.quantifiers.fmfOneInstPerRound = value;
3996
  opts.quantifiers.fmfOneInstPerRoundWasSetByUser = true;
3997
  Trace("options") << "user assigned option fmfOneInstPerRound = " << value << std::endl;
3998
}
3999
4000
void assign_quantifiers_mbqiMode(Options& opts, const std::string& option, const std::string& optionarg) {
4001
  auto value = stringToMbqiMode(optionarg);
4002
4003
  opts.quantifiers.mbqiMode = value;
4004
  opts.quantifiers.mbqiModeWasSetByUser = true;
4005
  Trace("options") << "user assigned option mbqiMode = " << value << std::endl;
4006
}
4007
4008
116
void assign_quantifiers_miniscopeQuant(Options& opts, const std::string& option, bool value) {
4009
4010
116
  opts.quantifiers.miniscopeQuant = value;
4011
116
  opts.quantifiers.miniscopeQuantWasSetByUser = true;
4012
116
  Trace("options") << "user assigned option miniscopeQuant = " << value << std::endl;
4013
116
}
4014
4015
114
void assign_quantifiers_miniscopeQuantFreeVar(Options& opts, const std::string& option, bool value) {
4016
4017
114
  opts.quantifiers.miniscopeQuantFreeVar = value;
4018
114
  opts.quantifiers.miniscopeQuantFreeVarWasSetByUser = true;
4019
114
  Trace("options") << "user assigned option miniscopeQuantFreeVar = " << value << std::endl;
4020
114
}
4021
4022
3
void assign_quantifiers_multiTriggerCache(Options& opts, const std::string& option, bool value) {
4023
4024
3
  opts.quantifiers.multiTriggerCache = value;
4025
3
  opts.quantifiers.multiTriggerCacheWasSetByUser = true;
4026
3
  Trace("options") << "user assigned option multiTriggerCache = " << value << std::endl;
4027
3
}
4028
4029
void assign_quantifiers_multiTriggerLinear(Options& opts, const std::string& option, bool value) {
4030
4031
  opts.quantifiers.multiTriggerLinear = value;
4032
  opts.quantifiers.multiTriggerLinearWasSetByUser = true;
4033
  Trace("options") << "user assigned option multiTriggerLinear = " << value << std::endl;
4034
}
4035
4036
void assign_quantifiers_multiTriggerPriority(Options& opts, const std::string& option, bool value) {
4037
4038
  opts.quantifiers.multiTriggerPriority = value;
4039
  opts.quantifiers.multiTriggerPriorityWasSetByUser = true;
4040
  Trace("options") << "user assigned option multiTriggerPriority = " << value << std::endl;
4041
}
4042
4043
void assign_quantifiers_multiTriggerWhenSingle(Options& opts, const std::string& option, bool value) {
4044
4045
  opts.quantifiers.multiTriggerWhenSingle = value;
4046
  opts.quantifiers.multiTriggerWhenSingleWasSetByUser = true;
4047
  Trace("options") << "user assigned option multiTriggerWhenSingle = " << value << std::endl;
4048
}
4049
4050
3
void assign_quantifiers_partialTriggers(Options& opts, const std::string& option, bool value) {
4051
4052
3
  opts.quantifiers.partialTriggers = value;
4053
3
  opts.quantifiers.partialTriggersWasSetByUser = true;
4054
3
  Trace("options") << "user assigned option partialTriggers = " << value << std::endl;
4055
3
}
4056
4057
3
void assign_quantifiers_poolInst(Options& opts, const std::string& option, bool value) {
4058
4059
3
  opts.quantifiers.poolInst = value;
4060
3
  opts.quantifiers.poolInstWasSetByUser = true;
4061
3
  Trace("options") << "user assigned option poolInst = " << value << std::endl;
4062
3
}
4063
4064
2
void assign_quantifiers_preSkolemQuant(Options& opts, const std::string& option, bool value) {
4065
4066
2
  opts.quantifiers.preSkolemQuant = value;
4067
2
  opts.quantifiers.preSkolemQuantWasSetByUser = true;
4068
2
  Trace("options") << "user assigned option preSkolemQuant = " << value << std::endl;
4069
2
}
4070
4071
void assign_quantifiers_preSkolemQuantAgg(Options& opts, const std::string& option, bool value) {
4072
4073
  opts.quantifiers.preSkolemQuantAgg = value;
4074
  opts.quantifiers.preSkolemQuantAggWasSetByUser = true;
4075
  Trace("options") << "user assigned option preSkolemQuantAgg = " << value << std::endl;
4076
}
4077
4078
2
void assign_quantifiers_preSkolemQuantNested(Options& opts, const std::string& option, bool value) {
4079
4080
2
  opts.quantifiers.preSkolemQuantNested = value;
4081
2
  opts.quantifiers.preSkolemQuantNestedWasSetByUser = true;
4082
2
  Trace("options") << "user assigned option preSkolemQuantNested = " << value << std::endl;
4083
2
}
4084
4085
void assign_quantifiers_prenexQuantUser(Options& opts, const std::string& option, bool value) {
4086
4087
  opts.quantifiers.prenexQuantUser = value;
4088
  opts.quantifiers.prenexQuantUserWasSetByUser = true;
4089
  Trace("options") << "user assigned option prenexQuantUser = " << value << std::endl;
4090
}
4091
4092
void assign_quantifiers_prenexQuant(Options& opts, const std::string& option, const std::string& optionarg) {
4093
  auto value = stringToPrenexQuantMode(optionarg);
4094
4095
  opts.quantifiers.prenexQuant = value;
4096
  opts.quantifiers.prenexQuantWasSetByUser = true;
4097
  Trace("options") << "user assigned option prenexQuant = " << value << std::endl;
4098
}
4099
4100
3
void assign_quantifiers_purifyTriggers(Options& opts, const std::string& option, bool value) {
4101
4102
3
  opts.quantifiers.purifyTriggers = value;
4103
3
  opts.quantifiers.purifyTriggersWasSetByUser = true;
4104
3
  Trace("options") << "user assigned option purifyTriggers = " << value << std::endl;
4105
3
}
4106
4107
void assign_quantifiers_qcfAllConflict(Options& opts, const std::string& option, bool value) {
4108
4109
  opts.quantifiers.qcfAllConflict = value;
4110
  opts.quantifiers.qcfAllConflictWasSetByUser = true;
4111
  Trace("options") << "user assigned option qcfAllConflict = " << value << std::endl;
4112
}
4113
4114
void assign_quantifiers_qcfEagerCheckRd(Options& opts, const std::string& option, bool value) {
4115
4116
  opts.quantifiers.qcfEagerCheckRd = value;
4117
  opts.quantifiers.qcfEagerCheckRdWasSetByUser = true;
4118
  Trace("options") << "user assigned option qcfEagerCheckRd = " << value << std::endl;
4119
}
4120
4121
void assign_quantifiers_qcfEagerTest(Options& opts, const std::string& option, bool value) {
4122
4123
  opts.quantifiers.qcfEagerTest = value;
4124
  opts.quantifiers.qcfEagerTestWasSetByUser = true;
4125
  Trace("options") << "user assigned option qcfEagerTest = " << value << std::endl;
4126
}
4127
4128
void assign_quantifiers_qcfNestedConflict(Options& opts, const std::string& option, bool value) {
4129
4130
  opts.quantifiers.qcfNestedConflict = value;
4131
  opts.quantifiers.qcfNestedConflictWasSetByUser = true;
4132
  Trace("options") << "user assigned option qcfNestedConflict = " << value << std::endl;
4133
}
4134
4135
void assign_quantifiers_qcfSkipRd(Options& opts, const std::string& option, bool value) {
4136
4137
  opts.quantifiers.qcfSkipRd = value;
4138
  opts.quantifiers.qcfSkipRdWasSetByUser = true;
4139
  Trace("options") << "user assigned option qcfSkipRd = " << value << std::endl;
4140
}
4141
4142
6
void assign_quantifiers_qcfTConstraint(Options& opts, const std::string& option, bool value) {
4143
4144
6
  opts.quantifiers.qcfTConstraint = value;
4145
6
  opts.quantifiers.qcfTConstraintWasSetByUser = true;
4146
6
  Trace("options") << "user assigned option qcfTConstraint = " << value << std::endl;
4147
6
}
4148
4149
void assign_quantifiers_qcfVoExp(Options& opts, const std::string& option, bool value) {
4150
4151
  opts.quantifiers.qcfVoExp = value;
4152
  opts.quantifiers.qcfVoExpWasSetByUser = true;
4153
  Trace("options") << "user assigned option qcfVoExp = " << value << std::endl;
4154
}
4155
4156
void assign_quantifiers_quantAlphaEquiv(Options& opts, const std::string& option, bool value) {
4157
4158
  opts.quantifiers.quantAlphaEquiv = value;
4159
  opts.quantifiers.quantAlphaEquivWasSetByUser = true;
4160
  Trace("options") << "user assigned option quantAlphaEquiv = " << value << std::endl;
4161
}
4162
4163
void assign_quantifiers_quantConflictFind(Options& opts, const std::string& option, bool value) {
4164
4165
  opts.quantifiers.quantConflictFind = value;
4166
  opts.quantifiers.quantConflictFindWasSetByUser = true;
4167
  Trace("options") << "user assigned option quantConflictFind = " << value << std::endl;
4168
}
4169
4170
void assign_quantifiers_qcfMode(Options& opts, const std::string& option, const std::string& optionarg) {
4171
  auto value = stringToQcfMode(optionarg);
4172
4173
  opts.quantifiers.qcfMode = value;
4174
  opts.quantifiers.qcfModeWasSetByUser = true;
4175
  Trace("options") << "user assigned option qcfMode = " << value << std::endl;
4176
}
4177
4178
void assign_quantifiers_qcfWhenMode(Options& opts, const std::string& option, const std::string& optionarg) {
4179
  auto value = stringToQcfWhenMode(optionarg);
4180
4181
  opts.quantifiers.qcfWhenMode = value;
4182
  opts.quantifiers.qcfWhenModeWasSetByUser = true;
4183
  Trace("options") << "user assigned option qcfWhenMode = " << value << std::endl;
4184
}
4185
4186
void assign_quantifiers_quantDynamicSplit(Options& opts, const std::string& option, const std::string& optionarg) {
4187
  auto value = stringToQuantDSplitMode(optionarg);
4188
4189
  opts.quantifiers.quantDynamicSplit = value;
4190
  opts.quantifiers.quantDynamicSplitWasSetByUser = true;
4191
  Trace("options") << "user assigned option quantDynamicSplit = " << value << std::endl;
4192
}
4193
4194
void assign_quantifiers_quantFunWellDefined(Options& opts, const std::string& option, bool value) {
4195
4196
  opts.quantifiers.quantFunWellDefined = value;
4197
  opts.quantifiers.quantFunWellDefinedWasSetByUser = true;
4198
  Trace("options") << "user assigned option quantFunWellDefined = " << value << std::endl;
4199
}
4200
4201
8
void assign_quantifiers_quantInduction(Options& opts, const std::string& option, bool value) {
4202
4203
8
  opts.quantifiers.quantInduction = value;
4204
8
  opts.quantifiers.quantInductionWasSetByUser = true;
4205
8
  Trace("options") << "user assigned option quantInduction = " << value << std::endl;
4206
8
}
4207
4208
void assign_quantifiers_quantRepMode(Options& opts, const std::string& option, const std::string& optionarg) {
4209
  auto value = stringToQuantRepMode(optionarg);
4210
4211
  opts.quantifiers.quantRepMode = value;
4212
  opts.quantifiers.quantRepModeWasSetByUser = true;
4213
  Trace("options") << "user assigned option quantRepMode = " << value << std::endl;
4214
}
4215
4216
114
void assign_quantifiers_quantSplit(Options& opts, const std::string& option, bool value) {
4217
4218
114
  opts.quantifiers.quantSplit = value;
4219
114
  opts.quantifiers.quantSplitWasSetByUser = true;
4220
114
  Trace("options") << "user assigned option quantSplit = " << value << std::endl;
4221
114
}
4222
4223
void assign_quantifiers_registerQuantBodyTerms(Options& opts, const std::string& option, bool value) {
4224
4225
  opts.quantifiers.registerQuantBodyTerms = value;
4226
  opts.quantifiers.registerQuantBodyTermsWasSetByUser = true;
4227
  Trace("options") << "user assigned option registerQuantBodyTerms = " << value << std::endl;
4228
}
4229
4230
15
void assign_quantifiers_relationalTriggers(Options& opts, const std::string& option, bool value) {
4231
4232
15
  opts.quantifiers.relationalTriggers = value;
4233
15
  opts.quantifiers.relationalTriggersWasSetByUser = true;
4234
15
  Trace("options") << "user assigned option relationalTriggers = " << value << std::endl;
4235
15
}
4236
4237
3
void assign_quantifiers_relevantTriggers(Options& opts, const std::string& option, bool value) {
4238
4239
3
  opts.quantifiers.relevantTriggers = value;
4240
3
  opts.quantifiers.relevantTriggersWasSetByUser = true;
4241
3
  Trace("options") << "user assigned option relevantTriggers = " << value << std::endl;
4242
3
}
4243
4244
void assign_quantifiers_sygus(Options& opts, const std::string& option, bool value) {
4245
4246
  opts.quantifiers.sygus = value;
4247
  opts.quantifiers.sygusWasSetByUser = true;
4248
  Trace("options") << "user assigned option sygus = " << value << std::endl;
4249
}
4250
4251
void assign_quantifiers_sygusActiveGenEnumConsts(Options& opts, const std::string& option, const std::string& optionarg) {
4252
  auto value = handleOption<uint64_t>("sygus-active-gen-cfactor", option, optionarg);
4253
4254
  opts.quantifiers.sygusActiveGenEnumConsts = value;
4255
  opts.quantifiers.sygusActiveGenEnumConstsWasSetByUser = true;
4256
  Trace("options") << "user assigned option sygusActiveGenEnumConsts = " << value << std::endl;
4257
}
4258
4259
14
void assign_quantifiers_sygusActiveGenMode(Options& opts, const std::string& option, const std::string& optionarg) {
4260
14
  auto value = stringToSygusActiveGenMode(optionarg);
4261
4262
14
  opts.quantifiers.sygusActiveGenMode = value;
4263
14
  opts.quantifiers.sygusActiveGenModeWasSetByUser = true;
4264
14
  Trace("options") << "user assigned option sygusActiveGenMode = " << value << std::endl;
4265
14
}
4266
4267
2
void assign_quantifiers_sygusAddConstGrammar(Options& opts, const std::string& option, bool value) {
4268
4269
2
  opts.quantifiers.sygusAddConstGrammar = value;
4270
2
  opts.quantifiers.sygusAddConstGrammarWasSetByUser = true;
4271
2
  Trace("options") << "user assigned option sygusAddConstGrammar = " << value << std::endl;
4272
2
}
4273
4274
3
void assign_quantifiers_sygusArgRelevant(Options& opts, const std::string& option, bool value) {
4275
4276
3
  opts.quantifiers.sygusArgRelevant = value;
4277
3
  opts.quantifiers.sygusArgRelevantWasSetByUser = true;
4278
3
  Trace("options") << "user assigned option sygusArgRelevant = " << value << std::endl;
4279
3
}
4280
4281
void assign_quantifiers_sygusInvAutoUnfold(Options& opts, const std::string& option, bool value) {
4282
4283
  opts.quantifiers.sygusInvAutoUnfold = value;
4284
  opts.quantifiers.sygusInvAutoUnfoldWasSetByUser = true;
4285
  Trace("options") << "user assigned option sygusInvAutoUnfold = " << value << std::endl;
4286
}
4287
4288
1
void assign_quantifiers_sygusBoolIteReturnConst(Options& opts, const std::string& option, bool value) {
4289
4290
1
  opts.quantifiers.sygusBoolIteReturnConst = value;
4291
1
  opts.quantifiers.sygusBoolIteReturnConstWasSetByUser = true;
4292
1
  Trace("options") << "user assigned option sygusBoolIteReturnConst = " << value << std::endl;
4293
1
}
4294
4295
5
void assign_quantifiers_sygusCoreConnective(Options& opts, const std::string& option, bool value) {
4296
4297
5
  opts.quantifiers.sygusCoreConnective = value;
4298
5
  opts.quantifiers.sygusCoreConnectiveWasSetByUser = true;
4299
5
  Trace("options") << "user assigned option sygusCoreConnective = " << value << std::endl;
4300
5
}
4301
4302
void assign_quantifiers_sygusConstRepairAbort(Options& opts, const std::string& option, bool value) {
4303
4304
  opts.quantifiers.sygusConstRepairAbort = value;
4305
  opts.quantifiers.sygusConstRepairAbortWasSetByUser = true;
4306
  Trace("options") << "user assigned option sygusConstRepairAbort = " << value << std::endl;
4307
}
4308
4309
void assign_quantifiers_sygusEvalOpt(Options& opts, const std::string& option, bool value) {
4310
4311
  opts.quantifiers.sygusEvalOpt = value;
4312
  opts.quantifiers.sygusEvalOptWasSetByUser = true;
4313
  Trace("options") << "user assigned option sygusEvalOpt = " << value << std::endl;
4314
}
4315
4316
void assign_quantifiers_sygusEvalUnfold(Options& opts, const std::string& option, bool value) {
4317
4318
  opts.quantifiers.sygusEvalUnfold = value;
4319
  opts.quantifiers.sygusEvalUnfoldWasSetByUser = true;
4320
  Trace("options") << "user assigned option sygusEvalUnfold = " << value << std::endl;
4321
}
4322
4323
void assign_quantifiers_sygusEvalUnfoldBool(Options& opts, const std::string& option, bool value) {
4324
4325
  opts.quantifiers.sygusEvalUnfoldBool = value;
4326
  opts.quantifiers.sygusEvalUnfoldBoolWasSetByUser = true;
4327
  Trace("options") << "user assigned option sygusEvalUnfoldBool = " << value << std::endl;
4328
}
4329
4330
void assign_quantifiers_sygusExprMinerCheckTimeout(Options& opts, const std::string& option, const std::string& optionarg) {
4331
  auto value = handleOption<uint64_t>("sygus-expr-miner-check-timeout", option, optionarg);
4332
4333
  opts.quantifiers.sygusExprMinerCheckTimeout = value;
4334
  opts.quantifiers.sygusExprMinerCheckTimeoutWasSetByUser = true;
4335
  Trace("options") << "user assigned option sygusExprMinerCheckTimeout = " << value << std::endl;
4336
}
4337
4338
2
void assign_quantifiers_sygusExtRew(Options& opts, const std::string& option, bool value) {
4339
4340
2
  opts.quantifiers.sygusExtRew = value;
4341
2
  opts.quantifiers.sygusExtRewWasSetByUser = true;
4342
2
  Trace("options") << "user assigned option sygusExtRew = " << value << std::endl;
4343
2
}
4344
4345
void assign_quantifiers_sygusFilterSolRevSubsume(Options& opts, const std::string& option, bool value) {
4346
4347
  opts.quantifiers.sygusFilterSolRevSubsume = value;
4348
  opts.quantifiers.sygusFilterSolRevSubsumeWasSetByUser = true;
4349
  Trace("options") << "user assigned option sygusFilterSolRevSubsume = " << value << std::endl;
4350
}
4351
4352
void assign_quantifiers_sygusFilterSolMode(Options& opts, const std::string& option, const std::string& optionarg) {
4353
  auto value = stringToSygusFilterSolMode(optionarg);
4354
4355
  opts.quantifiers.sygusFilterSolMode = value;
4356
  opts.quantifiers.sygusFilterSolModeWasSetByUser = true;
4357
  Trace("options") << "user assigned option sygusFilterSolMode = " << value << std::endl;
4358
}
4359
4360
6
void assign_quantifiers_sygusGrammarConsMode(Options& opts, const std::string& option, const std::string& optionarg) {
4361
6
  auto value = stringToSygusGrammarConsMode(optionarg);
4362
4363
6
  opts.quantifiers.sygusGrammarConsMode = value;
4364
6
  opts.quantifiers.sygusGrammarConsModeWasSetByUser = true;
4365
6
  Trace("options") << "user assigned option sygusGrammarConsMode = " << value << std::endl;
4366
6
}
4367
4368
void assign_quantifiers_sygusGrammarNorm(Options& opts, const std::string& option, bool value) {
4369
4370
  opts.quantifiers.sygusGrammarNorm = value;
4371
  opts.quantifiers.sygusGrammarNormWasSetByUser = true;
4372
  Trace("options") << "user assigned option sygusGrammarNorm = " << value << std::endl;
4373
}
4374
4375
60
void assign_quantifiers_sygusInference(Options& opts, const std::string& option, bool value) {
4376
4377
60
  opts.quantifiers.sygusInference = value;
4378
60
  opts.quantifiers.sygusInferenceWasSetByUser = true;
4379
60
  Trace("options") << "user assigned option sygusInference = " << value << std::endl;
4380
60
}
4381
4382
18
void assign_quantifiers_sygusInst(Options& opts, const std::string& option, bool value) {
4383
4384
18
  opts.quantifiers.sygusInst = value;
4385
18
  opts.quantifiers.sygusInstWasSetByUser = true;
4386
18
  Trace("options") << "user assigned option sygusInst = " << value << std::endl;
4387
18
}
4388
4389
void assign_quantifiers_sygusInstMode(Options& opts, const std::string& option, const std::string& optionarg) {
4390
  auto value = stringToSygusInstMode(optionarg);
4391
4392
  opts.quantifiers.sygusInstMode = value;
4393
  opts.quantifiers.sygusInstModeWasSetByUser = true;
4394
  Trace("options") << "user assigned option sygusInstMode = " << value << std::endl;
4395
}
4396
4397
void assign_quantifiers_sygusInstScope(Options& opts, const std::string& option, const std::string& optionarg) {
4398
  auto value = stringToSygusInstScope(optionarg);
4399
4400
  opts.quantifiers.sygusInstScope = value;
4401
  opts.quantifiers.sygusInstScopeWasSetByUser = true;
4402
  Trace("options") << "user assigned option sygusInstScope = " << value << std::endl;
4403
}
4404
4405
void assign_quantifiers_sygusInstTermSel(Options& opts, const std::string& option, const std::string& optionarg) {
4406
  auto value = stringToSygusInstTermSelMode(optionarg);
4407
4408
  opts.quantifiers.sygusInstTermSel = value;
4409
  opts.quantifiers.sygusInstTermSelWasSetByUser = true;
4410
  Trace("options") << "user assigned option sygusInstTermSel = " << value << std::endl;
4411
}
4412
4413
void assign_quantifiers_sygusInvTemplWhenSyntax(Options& opts, const std::string& option, bool value) {
4414
4415
  opts.quantifiers.sygusInvTemplWhenSyntax = value;
4416
  opts.quantifiers.sygusInvTemplWhenSyntaxWasSetByUser = true;
4417
  Trace("options") << "user assigned option sygusInvTemplWhenSyntax = " << value << std::endl;
4418
}
4419
4420
3
void assign_quantifiers_sygusInvTemplMode(Options& opts, const std::string& option, const std::string& optionarg) {
4421
3
  auto value = stringToSygusInvTemplMode(optionarg);
4422
4423
3
  opts.quantifiers.sygusInvTemplMode = value;
4424
3
  opts.quantifiers.sygusInvTemplModeWasSetByUser = true;
4425
3
  Trace("options") << "user assigned option sygusInvTemplMode = " << value << std::endl;
4426
3
}
4427
4428
void assign_quantifiers_sygusMinGrammar(Options& opts, const std::string& option, bool value) {
4429
4430
  opts.quantifiers.sygusMinGrammar = value;
4431
  opts.quantifiers.sygusMinGrammarWasSetByUser = true;
4432
  Trace("options") << "user assigned option sygusMinGrammar = " << value << std::endl;
4433
}
4434
4435
6
void assign_quantifiers_sygusUnifPbe(Options& opts, const std::string& option, bool value) {
4436
4437
6
  opts.quantifiers.sygusUnifPbe = value;
4438
6
  opts.quantifiers.sygusUnifPbeWasSetByUser = true;
4439
6
  Trace("options") << "user assigned option sygusUnifPbe = " << value << std::endl;
4440
6
}
4441
4442
void assign_quantifiers_sygusPbeMultiFair(Options& opts, const std::string& option, bool value) {
4443
4444
  opts.quantifiers.sygusPbeMultiFair = value;
4445
  opts.quantifiers.sygusPbeMultiFairWasSetByUser = true;
4446
  Trace("options") << "user assigned option sygusPbeMultiFair = " << value << std::endl;
4447
}
4448
4449
void assign_quantifiers_sygusPbeMultiFairDiff(Options& opts, const std::string& option, const std::string& optionarg) {
4450
  auto value = handleOption<int64_t>("sygus-pbe-multi-fair-diff", option, optionarg);
4451
4452
  opts.quantifiers.sygusPbeMultiFairDiff = value;
4453
  opts.quantifiers.sygusPbeMultiFairDiffWasSetByUser = true;
4454
  Trace("options") << "user assigned option sygusPbeMultiFairDiff = " << value << std::endl;
4455
}
4456
4457
4
void assign_quantifiers_sygusQePreproc(Options& opts, const std::string& option, bool value) {
4458
4459
4
  opts.quantifiers.sygusQePreproc = value;
4460
4
  opts.quantifiers.sygusQePreprocWasSetByUser = true;
4461
4
  Trace("options") << "user assigned option sygusQePreproc = " << value << std::endl;
4462
4
}
4463
4464
void assign_quantifiers_sygusQueryGen(Options& opts, const std::string& option, bool value) {
4465
4466
  opts.quantifiers.sygusQueryGen = value;
4467
  opts.quantifiers.sygusQueryGenWasSetByUser = true;
4468
  Trace("options") << "user assigned option sygusQueryGen = " << value << std::endl;
4469
}
4470
4471
void assign_quantifiers_sygusQueryGenCheck(Options& opts, const std::string& option, bool value) {
4472
4473
  opts.quantifiers.sygusQueryGenCheck = value;
4474
  opts.quantifiers.sygusQueryGenCheckWasSetByUser = true;
4475
  Trace("options") << "user assigned option sygusQueryGenCheck = " << value << std::endl;
4476
}
4477
4478
void assign_quantifiers_sygusQueryGenDumpFiles(Options& opts, const std::string& option, const std::string& optionarg) {
4479
  auto value = stringToSygusQueryDumpFilesMode(optionarg);
4480
4481
  opts.quantifiers.sygusQueryGenDumpFiles = value;
4482
  opts.quantifiers.sygusQueryGenDumpFilesWasSetByUser = true;
4483
  Trace("options") << "user assigned option sygusQueryGenDumpFiles = " << value << std::endl;
4484
}
4485
4486
void assign_quantifiers_sygusQueryGenThresh(Options& opts, const std::string& option, const std::string& optionarg) {
4487
  auto value = handleOption<uint64_t>("sygus-query-gen-thresh", option, optionarg);
4488
4489
  opts.quantifiers.sygusQueryGenThresh = value;
4490
  opts.quantifiers.sygusQueryGenThreshWasSetByUser = true;
4491
  Trace("options") << "user assigned option sygusQueryGenThresh = " << value << std::endl;
4492
}
4493
4494
3
void assign_quantifiers_sygusRecFun(Options& opts, const std::string& option, bool value) {
4495
4496
3
  opts.quantifiers.sygusRecFun = value;
4497
3
  opts.quantifiers.sygusRecFunWasSetByUser = true;
4498
3
  Trace("options") << "user assigned option sygusRecFun = " << value << std::endl;
4499
3
}
4500
4501
void assign_quantifiers_sygusRecFunEvalLimit(Options& opts, const std::string& option, const std::string& optionarg) {
4502
  auto value = handleOption<uint64_t>("sygus-rec-fun-eval-limit", option, optionarg);
4503
4504
  opts.quantifiers.sygusRecFunEvalLimit = value;
4505
  opts.quantifiers.sygusRecFunEvalLimitWasSetByUser = true;
4506
  Trace("options") << "user assigned option sygusRecFunEvalLimit = " << value << std::endl;
4507
}
4508
4509
8
void assign_quantifiers_sygusRepairConst(Options& opts, const std::string& option, bool value) {
4510
4511
8
  opts.quantifiers.sygusRepairConst = value;
4512
8
  opts.quantifiers.sygusRepairConstWasSetByUser = true;
4513
8
  Trace("options") << "user assigned option sygusRepairConst = " << value << std::endl;
4514
8
}
4515
4516
void assign_quantifiers_sygusRepairConstTimeout(Options& opts, const std::string& option, const std::string& optionarg) {
4517
  auto value = handleOption<uint64_t>("sygus-repair-const-timeout", option, optionarg);
4518
4519
  opts.quantifiers.sygusRepairConstTimeout = value;
4520
  opts.quantifiers.sygusRepairConstTimeoutWasSetByUser = true;
4521
  Trace("options") << "user assigned option sygusRepairConstTimeout = " << value << std::endl;
4522
}
4523
4524
6
void assign_quantifiers_sygusRew(Options& opts, const std::string& option, bool value) {
4525
4526
6
  opts.quantifiers.sygusRew = value;
4527
6
  opts.quantifiers.sygusRewWasSetByUser = true;
4528
6
  Trace("options") << "user assigned option sygusRew = " << value << std::endl;
4529
6
}
4530
4531
1
void assign_quantifiers_sygusRewSynth(Options& opts, const std::string& option, bool value) {
4532
4533
1
  opts.quantifiers.sygusRewSynth = value;
4534
1
  opts.quantifiers.sygusRewSynthWasSetByUser = true;
4535
1
  Trace("options") << "user assigned option sygusRewSynth = " << value << std::endl;
4536
1
}
4537
4538
void assign_quantifiers_sygusRewSynthAccel(Options& opts, const std::string& option, bool value) {
4539
4540
  opts.quantifiers.sygusRewSynthAccel = value;
4541
  opts.quantifiers.sygusRewSynthAccelWasSetByUser = true;
4542
  Trace("options") << "user assigned option sygusRewSynthAccel = " << value << std::endl;
4543
}
4544
4545
5
void assign_quantifiers_sygusRewSynthCheck(Options& opts, const std::string& option, bool value) {
4546
4547
5
  opts.quantifiers.sygusRewSynthCheck = value;
4548
5
  opts.quantifiers.sygusRewSynthCheckWasSetByUser = true;
4549
5
  Trace("options") << "user assigned option sygusRewSynthCheck = " << value << std::endl;
4550
5
}
4551
4552
void assign_quantifiers_sygusRewSynthFilterCong(Options& opts, const std::string& option, bool value) {
4553
4554
  opts.quantifiers.sygusRewSynthFilterCong = value;
4555
  opts.quantifiers.sygusRewSynthFilterCongWasSetByUser = true;
4556
  Trace("options") << "user assigned option sygusRewSynthFilterCong = " << value << std::endl;
4557
}
4558
4559
void assign_quantifiers_sygusRewSynthFilterMatch(Options& opts, const std::string& option, bool value) {
4560
4561
  opts.quantifiers.sygusRewSynthFilterMatch = value;
4562
  opts.quantifiers.sygusRewSynthFilterMatchWasSetByUser = true;
4563
  Trace("options") << "user assigned option sygusRewSynthFilterMatch = " << value << std::endl;
4564
}
4565
4566
void assign_quantifiers_sygusRewSynthFilterNonLinear(Options& opts, const std::string& option, bool value) {
4567
4568
  opts.quantifiers.sygusRewSynthFilterNonLinear = value;
4569
  opts.quantifiers.sygusRewSynthFilterNonLinearWasSetByUser = true;
4570
  Trace("options") << "user assigned option sygusRewSynthFilterNonLinear = " << value << std::endl;
4571
}
4572
4573
void assign_quantifiers_sygusRewSynthFilterOrder(Options& opts, const std::string& option, bool value) {
4574
4575
  opts.quantifiers.sygusRewSynthFilterOrder = value;
4576
  opts.quantifiers.sygusRewSynthFilterOrderWasSetByUser = true;
4577
  Trace("options") << "user assigned option sygusRewSynthFilterOrder = " << value << std::endl;
4578
}
4579
4580
255
void assign_quantifiers_sygusRewSynthInput(Options& opts, const std::string& option, bool value) {
4581
4582
255
  opts.quantifiers.sygusRewSynthInput = value;
4583
255
  opts.quantifiers.sygusRewSynthInputWasSetByUser = true;
4584
255
  Trace("options") << "user assigned option sygusRewSynthInput = " << value << std::endl;
4585
255
}
4586
4587
void assign_quantifiers_sygusRewSynthInputNVars(Options& opts, const std::string& option, const std::string& optionarg) {
4588
  auto value = handleOption<int64_t>("sygus-rr-synth-input-nvars", option, optionarg);
4589
4590
  opts.quantifiers.sygusRewSynthInputNVars = value;
4591
  opts.quantifiers.sygusRewSynthInputNVarsWasSetByUser = true;
4592
  Trace("options") << "user assigned option sygusRewSynthInputNVars = " << value << std::endl;
4593
}
4594
4595
void assign_quantifiers_sygusRewSynthInputUseBool(Options& opts, const std::string& option, bool value) {
4596
4597
  opts.quantifiers.sygusRewSynthInputUseBool = value;
4598
  opts.quantifiers.sygusRewSynthInputUseBoolWasSetByUser = true;
4599
  Trace("options") << "user assigned option sygusRewSynthInputUseBool = " << value << std::endl;
4600
}
4601
4602
void assign_quantifiers_sygusRewSynthRec(Options& opts, const std::string& option, bool value) {
4603
4604
  opts.quantifiers.sygusRewSynthRec = value;
4605
  opts.quantifiers.sygusRewSynthRecWasSetByUser = true;
4606
  Trace("options") << "user assigned option sygusRewSynthRec = " << value << std::endl;
4607
}
4608
4609
void assign_quantifiers_sygusRewVerify(Options& opts, const std::string& option, bool value) {
4610
4611
  opts.quantifiers.sygusRewVerify = value;
4612
  opts.quantifiers.sygusRewVerifyWasSetByUser = true;
4613
  Trace("options") << "user assigned option sygusRewVerify = " << value << std::endl;
4614
}
4615
4616
7
void assign_quantifiers_sygusRewVerifyAbort(Options& opts, const std::string& option, bool value) {
4617
4618
7
  opts.quantifiers.sygusRewVerifyAbort = value;
4619
7
  opts.quantifiers.sygusRewVerifyAbortWasSetByUser = true;
4620
7
  Trace("options") << "user assigned option sygusRewVerifyAbort = " << value << std::endl;
4621
7
}
4622
4623
void assign_quantifiers_sygusSampleFpUniform(Options& opts, const std::string& option, bool value) {
4624
4625
  opts.quantifiers.sygusSampleFpUniform = value;
4626
  opts.quantifiers.sygusSampleFpUniformWasSetByUser = true;
4627
  Trace("options") << "user assigned option sygusSampleFpUniform = " << value << std::endl;
4628
}
4629
4630
void assign_quantifiers_sygusSampleGrammar(Options& opts, const std::string& option, bool value) {
4631
4632
  opts.quantifiers.sygusSampleGrammar = value;
4633
  opts.quantifiers.sygusSampleGrammarWasSetByUser = true;
4634
  Trace("options") << "user assigned option sygusSampleGrammar = " << value << std::endl;
4635
}
4636
4637
7
void assign_quantifiers_sygusSamples(Options& opts, const std::string& option, const std::string& optionarg) {
4638
7
  auto value = handleOption<int64_t>("sygus-samples", option, optionarg);
4639
4640
7
  opts.quantifiers.sygusSamples = value;
4641
7
  opts.quantifiers.sygusSamplesWasSetByUser = true;
4642
7
  Trace("options") << "user assigned option sygusSamples = " << value << std::endl;
4643
7
}
4644
4645
void assign_quantifiers_cegqiSingleInvAbort(Options& opts, const std::string& option, bool value) {
4646
4647
  opts.quantifiers.cegqiSingleInvAbort = value;
4648
  opts.quantifiers.cegqiSingleInvAbortWasSetByUser = true;
4649
  Trace("options") << "user assigned option cegqiSingleInvAbort = " << value << std::endl;
4650
}
4651
4652
void assign_quantifiers_cegqiSingleInvPartial(Options& opts, const std::string& option, bool value) {
4653
4654
  opts.quantifiers.cegqiSingleInvPartial = value;
4655
  opts.quantifiers.cegqiSingleInvPartialWasSetByUser = true;
4656
  Trace("options") << "user assigned option cegqiSingleInvPartial = " << value << std::endl;
4657
}
4658
4659
1
void assign_quantifiers_cegqiSingleInvReconstructLimit(Options& opts, const std::string& option, const std::string& optionarg) {
4660
1
  auto value = handleOption<int64_t>("sygus-si-rcons-limit", option, optionarg);
4661
4662
1
  opts.quantifiers.cegqiSingleInvReconstructLimit = value;
4663
1
  opts.quantifiers.cegqiSingleInvReconstructLimitWasSetByUser = true;
4664
1
  Trace("options") << "user assigned option cegqiSingleInvReconstructLimit = " << value << std::endl;
4665
1
}
4666
4667
void assign_quantifiers_cegqiSingleInvReconstruct(Options& opts, const std::string& option, const std::string& optionarg) {
4668
  auto value = stringToCegqiSingleInvRconsMode(optionarg);
4669
4670
  opts.quantifiers.cegqiSingleInvReconstruct = value;
4671
  opts.quantifiers.cegqiSingleInvReconstructWasSetByUser = true;
4672
  Trace("options") << "user assigned option cegqiSingleInvReconstruct = " << value << std::endl;
4673
}
4674
4675
void assign_quantifiers_cegqiSingleInvReconstructConst(Options& opts, const std::string& option, bool value) {
4676
4677
  opts.quantifiers.cegqiSingleInvReconstructConst = value;
4678
  opts.quantifiers.cegqiSingleInvReconstructConstWasSetByUser = true;
4679
  Trace("options") << "user assigned option cegqiSingleInvReconstructConst = " << value << std::endl;
4680
}
4681
4682
47
void assign_quantifiers_cegqiSingleInvMode(Options& opts, const std::string& option, const std::string& optionarg) {
4683
47
  auto value = stringToCegqiSingleInvMode(optionarg);
4684
4685
47
  opts.quantifiers.cegqiSingleInvMode = value;
4686
47
  opts.quantifiers.cegqiSingleInvModeWasSetByUser = true;
4687
47
  Trace("options") << "user assigned option cegqiSingleInvMode = " << value << std::endl;
4688
47
}
4689
4690
4
void assign_quantifiers_sygusStream(Options& opts, const std::string& option, bool value) {
4691
4692
4
  opts.quantifiers.sygusStream = value;
4693
4
  opts.quantifiers.sygusStreamWasSetByUser = true;
4694
4
  Trace("options") << "user assigned option sygusStream = " << value << std::endl;
4695
4
}
4696
4697
void assign_quantifiers_sygusTemplEmbedGrammar(Options& opts, const std::string& option, bool value) {
4698
4699
  opts.quantifiers.sygusTemplEmbedGrammar = value;
4700
  opts.quantifiers.sygusTemplEmbedGrammarWasSetByUser = true;
4701
  Trace("options") << "user assigned option sygusTemplEmbedGrammar = " << value << std::endl;
4702
}
4703
4704
void assign_quantifiers_sygusUnifCondIndNoRepeatSol(Options& opts, const std::string& option, bool value) {
4705
4706
  opts.quantifiers.sygusUnifCondIndNoRepeatSol = value;
4707
  opts.quantifiers.sygusUnifCondIndNoRepeatSolWasSetByUser = true;
4708
  Trace("options") << "user assigned option sygusUnifCondIndNoRepeatSol = " << value << std::endl;
4709
}
4710
4711
9
void assign_quantifiers_sygusUnifPi(Options& opts, const std::string& option, const std::string& optionarg) {
4712
9
  auto value = stringToSygusUnifPiMode(optionarg);
4713
4714
9
  opts.quantifiers.sygusUnifPi = value;
4715
9
  opts.quantifiers.sygusUnifPiWasSetByUser = true;
4716
9
  Trace("options") << "user assigned option sygusUnifPi = " << value << std::endl;
4717
9
}
4718
4719
void assign_quantifiers_sygusUnifShuffleCond(Options& opts, const std::string& option, bool value) {
4720
4721
  opts.quantifiers.sygusUnifShuffleCond = value;
4722
  opts.quantifiers.sygusUnifShuffleCondWasSetByUser = true;
4723
  Trace("options") << "user assigned option sygusUnifShuffleCond = " << value << std::endl;
4724
}
4725
4726
void assign_quantifiers_sygusVerifyInstMaxRounds(Options& opts, const std::string& option, const std::string& optionarg) {
4727
  auto value = handleOption<int64_t>("sygus-verify-inst-max-rounds", option, optionarg);
4728
4729
  opts.quantifiers.sygusVerifyInstMaxRounds = value;
4730
  opts.quantifiers.sygusVerifyInstMaxRoundsWasSetByUser = true;
4731
  Trace("options") << "user assigned option sygusVerifyInstMaxRounds = " << value << std::endl;
4732
}
4733
4734
void assign_quantifiers_termDbCd(Options& opts, const std::string& option, bool value) {
4735
4736
  opts.quantifiers.termDbCd = value;
4737
  opts.quantifiers.termDbCdWasSetByUser = true;
4738
  Trace("options") << "user assigned option termDbCd = " << value << std::endl;
4739
}
4740
4741
void assign_quantifiers_termDbMode(Options& opts, const std::string& option, const std::string& optionarg) {
4742
  auto value = stringToTermDbMode(optionarg);
4743
4744
  opts.quantifiers.termDbMode = value;
4745
  opts.quantifiers.termDbModeWasSetByUser = true;
4746
  Trace("options") << "user assigned option termDbMode = " << value << std::endl;
4747
}
4748
4749
void assign_quantifiers_triggerActiveSelMode(Options& opts, const std::string& option, const std::string& optionarg) {
4750
  auto value = stringToTriggerActiveSelMode(optionarg);
4751
4752
  opts.quantifiers.triggerActiveSelMode = value;
4753
  opts.quantifiers.triggerActiveSelModeWasSetByUser = true;
4754
  Trace("options") << "user assigned option triggerActiveSelMode = " << value << std::endl;
4755
}
4756
4757
void assign_quantifiers_triggerSelMode(Options& opts, const std::string& option, const std::string& optionarg) {
4758
  auto value = stringToTriggerSelMode(optionarg);
4759
4760
  opts.quantifiers.triggerSelMode = value;
4761
  opts.quantifiers.triggerSelModeWasSetByUser = true;
4762
  Trace("options") << "user assigned option triggerSelMode = " << value << std::endl;
4763
}
4764
4765
void assign_quantifiers_userPatternsQuant(Options& opts, const std::string& option, const std::string& optionarg) {
4766
  auto value = stringToUserPatMode(optionarg);
4767
4768
  opts.quantifiers.userPatternsQuant = value;
4769
  opts.quantifiers.userPatternsQuantWasSetByUser = true;
4770
  Trace("options") << "user assigned option userPatternsQuant = " << value << std::endl;
4771
}
4772
4773
void assign_quantifiers_varElimQuant(Options& opts, const std::string& option, bool value) {
4774
4775
  opts.quantifiers.varElimQuant = value;
4776
  opts.quantifiers.varElimQuantWasSetByUser = true;
4777
  Trace("options") << "user assigned option varElimQuant = " << value << std::endl;
4778
}
4779
4780
7
void assign_quantifiers_varIneqElimQuant(Options& opts, const std::string& option, bool value) {
4781
4782
7
  opts.quantifiers.varIneqElimQuant = value;
4783
7
  opts.quantifiers.varIneqElimQuantWasSetByUser = true;
4784
7
  Trace("options") << "user assigned option varIneqElimQuant = " << value << std::endl;
4785
7
}
4786
4787
void assign_sep_sepCheckNeg(Options& opts, const std::string& option, bool value) {
4788
4789
  opts.sep.sepCheckNeg = value;
4790
  opts.sep.sepCheckNegWasSetByUser = true;
4791
  Trace("options") << "user assigned option sepCheckNeg = " << value << std::endl;
4792
}
4793
4794
void assign_sep_sepChildRefine(Options& opts, const std::string& option, bool value) {
4795
4796
  opts.sep.sepChildRefine = value;
4797
  opts.sep.sepChildRefineWasSetByUser = true;
4798
  Trace("options") << "user assigned option sepChildRefine = " << value << std::endl;
4799
}
4800
4801
void assign_sep_sepDisequalC(Options& opts, const std::string& option, bool value) {
4802
4803
  opts.sep.sepDisequalC = value;
4804
  opts.sep.sepDisequalCWasSetByUser = true;
4805
  Trace("options") << "user assigned option sepDisequalC = " << value << std::endl;
4806
}
4807
4808
void assign_sep_sepExp(Options& opts, const std::string& option, bool value) {
4809
4810
  opts.sep.sepExp = value;
4811
  opts.sep.sepExpWasSetByUser = true;
4812
  Trace("options") << "user assigned option sepExp = " << value << std::endl;
4813
}
4814
4815
void assign_sep_sepMinimalRefine(Options& opts, const std::string& option, bool value) {
4816
4817
  opts.sep.sepMinimalRefine = value;
4818
  opts.sep.sepMinimalRefineWasSetByUser = true;
4819
  Trace("options") << "user assigned option sepMinimalRefine = " << value << std::endl;
4820
}
4821
4822
1
void assign_sep_sepPreSkolemEmp(Options& opts, const std::string& option, bool value) {
4823
4824
1
  opts.sep.sepPreSkolemEmp = value;
4825
1
  opts.sep.sepPreSkolemEmpWasSetByUser = true;
4826
1
  Trace("options") << "user assigned option sepPreSkolemEmp = " << value << std::endl;
4827
1
}
4828
4829
116
void assign_sets_setsExt(Options& opts, const std::string& option, bool value) {
4830
4831
116
  opts.sets.setsExt = value;
4832
116
  opts.sets.setsExtWasSetByUser = true;
4833
116
  Trace("options") << "user assigned option setsExt = " << value << std::endl;
4834
116
}
4835
4836
2
void assign_sets_setsInferAsLemmas(Options& opts, const std::string& option, bool value) {
4837
4838
2
  opts.sets.setsInferAsLemmas = value;
4839
2
  opts.sets.setsInferAsLemmasWasSetByUser = true;
4840
2
  Trace("options") << "user assigned option setsInferAsLemmas = " << value << std::endl;
4841
2
}
4842
4843
void assign_sets_setsProxyLemmas(Options& opts, const std::string& option, bool value) {
4844
4845
  opts.sets.setsProxyLemmas = value;
4846
  opts.sets.setsProxyLemmasWasSetByUser = true;
4847
  Trace("options") << "user assigned option setsProxyLemmas = " << value << std::endl;
4848
}
4849
4850
4
void assign_smt_abstractValues(Options& opts, const std::string& option, bool value) {
4851
4852
4
  opts.smt.abstractValues = value;
4853
4
  opts.smt.abstractValuesWasSetByUser = true;
4854
4
  Trace("options") << "user assigned option abstractValues = " << value << std::endl;
4855
4
}
4856
4857
31
void assign_smt_ackermann(Options& opts, const std::string& option, bool value) {
4858
4859
31
  opts.smt.ackermann = value;
4860
31
  opts.smt.ackermannWasSetByUser = true;
4861
31
  Trace("options") << "user assigned option ackermann = " << value << std::endl;
4862
31
}
4863
4864
21
void assign_smt_blockModelsMode(Options& opts, const std::string& option, const std::string& optionarg) {
4865
21
  auto value = stringToBlockModelsMode(optionarg);
4866
4867
21
  opts.smt.blockModelsMode = value;
4868
21
  opts.smt.blockModelsModeWasSetByUser = true;
4869
21
  Trace("options") << "user assigned option blockModelsMode = " << value << std::endl;
4870
21
}
4871
4872
78
void assign_smt_BVAndIntegerGranularity(Options& opts, const std::string& option, const std::string& optionarg) {
4873
78
  auto value = handleOption<uint64_t>("bvand-integer-granularity", option, optionarg);
4874
4875
78
  opts.smt.BVAndIntegerGranularity = value;
4876
78
  opts.smt.BVAndIntegerGranularityWasSetByUser = true;
4877
78
  Trace("options") << "user assigned option BVAndIntegerGranularity = " << value << std::endl;
4878
78
}
4879
4880
13
void assign_smt_checkAbducts(Options& opts, const std::string& option, bool value) {
4881
4882
13
  opts.smt.checkAbducts = value;
4883
13
  opts.smt.checkAbductsWasSetByUser = true;
4884
13
  Trace("options") << "user assigned option checkAbducts = " << value << std::endl;
4885
13
}
4886
4887
8
void assign_smt_checkInterpols(Options& opts, const std::string& option, bool value) {
4888
4889
8
  opts.smt.checkInterpols = value;
4890
8
  opts.smt.checkInterpolsWasSetByUser = true;
4891
8
  Trace("options") << "user assigned option checkInterpols = " << value << std::endl;
4892
8
}
4893
4894
116
void assign_smt_checkModels(Options& opts, const std::string& option, bool value) {
4895
4896
116
  opts.smt.checkModels = value;
4897
116
  opts.smt.checkModelsWasSetByUser = true;
4898
116
  Trace("options") << "user assigned option checkModels = " << value << std::endl;
4899
116
}
4900
4901
1161
void assign_smt_checkProofs(Options& opts, const std::string& option, bool value) {
4902
4903
1161
  opts.smt.checkProofs = value;
4904
1161
  opts.smt.checkProofsWasSetByUser = true;
4905
1161
  Trace("options") << "user assigned option checkProofs = " << value << std::endl;
4906
1161
}
4907
4908
188
void assign_smt_checkSynthSol(Options& opts, const std::string& option, bool value) {
4909
4910
188
  opts.smt.checkSynthSol = value;
4911
188
  opts.smt.checkSynthSolWasSetByUser = true;
4912
188
  Trace("options") << "user assigned option checkSynthSol = " << value << std::endl;
4913
188
}
4914
4915
1185
void assign_smt_checkUnsatCores(Options& opts, const std::string& option, bool value) {
4916
4917
1185
  opts.smt.checkUnsatCores = value;
4918
1185
  opts.smt.checkUnsatCoresWasSetByUser = true;
4919
1185
  Trace("options") << "user assigned option checkUnsatCores = " << value << std::endl;
4920
1185
}
4921
4922
1224
void assign_smt_debugCheckModels(Options& opts, const std::string& option, bool value) {
4923
4924
1224
  opts.smt.debugCheckModels = value;
4925
1224
  opts.smt.debugCheckModelsWasSetByUser = true;
4926
1224
  Trace("options") << "user assigned option debugCheckModels = " << value << std::endl;
4927
1224
}
4928
4929
void assign_smt_dumpToFileName(Options& opts, const std::string& option, const std::string& optionarg) {
4930
  auto value = handleOption<ManagedOut>("dump-to", option, optionarg);
4931
  opts.handler().setDumpStream("dump-to", option, value);
4932
  opts.smt.dumpToFileName = value;
4933
  opts.smt.dumpToFileNameWasSetByUser = true;
4934
  Trace("options") << "user assigned option dumpToFileName = " << value << std::endl;
4935
}
4936
4937
3
void assign_smt_dumpModeString(Options& opts, const std::string& option, const std::string& optionarg) {
4938
6
  auto value = handleOption<std::string>("dump", option, optionarg);
4939
4
  opts.handler().setDumpMode("dump", option, value);
4940
2
  opts.smt.dumpModeString = value;
4941
2
  opts.smt.dumpModeStringWasSetByUser = true;
4942
2
  Trace("options") << "user assigned option dumpModeString = " << value << std::endl;
4943
2
}
4944
4945
void assign_smt_earlyIteRemoval(Options& opts, const std::string& option, bool value) {
4946
4947
  opts.smt.earlyIteRemoval = value;
4948
  opts.smt.earlyIteRemovalWasSetByUser = true;
4949
  Trace("options") << "user assigned option earlyIteRemoval = " << value << std::endl;
4950
}
4951
4952
void assign_smt_expandDefinitions(Options& opts, const std::string& option, bool value) {
4953
4954
  opts.smt.expandDefinitions = value;
4955
  opts.smt.expandDefinitionsWasSetByUser = true;
4956
  Trace("options") << "user assigned option expandDefinitions = " << value << std::endl;
4957
}
4958
4959
19
void assign_smt_extRewPrep(Options& opts, const std::string& option, bool value) {
4960
4961
19
  opts.smt.extRewPrep = value;
4962
19
  opts.smt.extRewPrepWasSetByUser = true;
4963
19
  Trace("options") << "user assigned option extRewPrep = " << value << std::endl;
4964
19
}
4965
4966
7
void assign_smt_extRewPrepAgg(Options& opts, const std::string& option, bool value) {
4967
4968
7
  opts.smt.extRewPrepAgg = value;
4969
7
  opts.smt.extRewPrepAggWasSetByUser = true;
4970
7
  Trace("options") << "user assigned option extRewPrepAgg = " << value << std::endl;
4971
7
}
4972
4973
2
void assign_smt_foreignTheoryRewrite(Options& opts, const std::string& option, bool value) {
4974
4975
2
  opts.smt.foreignTheoryRewrite = value;
4976
2
  opts.smt.foreignTheoryRewriteWasSetByUser = true;
4977
2
  Trace("options") << "user assigned option foreignTheoryRewrite = " << value << std::endl;
4978
2
}
4979
4980
68
void assign_smt_iandMode(Options& opts, const std::string& option, const std::string& optionarg) {
4981
68
  auto value = stringToIandMode(optionarg);
4982
4983
68
  opts.smt.iandMode = value;
4984
68
  opts.smt.iandModeWasSetByUser = true;
4985
68
  Trace("options") << "user assigned option iandMode = " << value << std::endl;
4986
68
}
4987
4988
2
void assign_smt_interactiveMode(Options& opts, const std::string& option, bool value) {
4989
2
  opts.handler().setProduceAssertions("interactive-mode", option, value);
4990
2
  opts.smt.interactiveMode = value;
4991
2
  opts.smt.interactiveModeWasSetByUser = true;
4992
2
  Trace("options") << "user assigned option interactiveMode = " << value << std::endl;
4993
2
}
4994
4995
3
void assign_smt_doITESimp(Options& opts, const std::string& option, bool value) {
4996
4997
3
  opts.smt.doITESimp = value;
4998
3
  opts.smt.doITESimpWasSetByUser = true;
4999
3
  Trace("options") << "user assigned option doITESimp = " << value << std::endl;
5000
3
}
5001
5002
2
void assign_smt_learnedRewrite(Options& opts, const std::string& option, bool value) {
5003
5004
2
  opts.smt.learnedRewrite = value;
5005
2
  opts.smt.learnedRewriteWasSetByUser = true;
5006
2
  Trace("options") << "user assigned option learnedRewrite = " << value << std::endl;
5007
2
}
5008
5009
3
void assign_smt_minimalUnsatCores(Options& opts, const std::string& option, bool value) {
5010
5011
3
  opts.smt.minimalUnsatCores = value;
5012
3
  opts.smt.minimalUnsatCoresWasSetByUser = true;
5013
3
  Trace("options") << "user assigned option minimalUnsatCores = " << value << std::endl;
5014
3
}
5015
5016
6
void assign_smt_modelCoresMode(Options& opts, const std::string& option, const std::string& optionarg) {
5017
6
  auto value = stringToModelCoresMode(optionarg);
5018
5019
6
  opts.smt.modelCoresMode = value;
5020
6
  opts.smt.modelCoresModeWasSetByUser = true;
5021
6
  Trace("options") << "user assigned option modelCoresMode = " << value << std::endl;
5022
6
}
5023
5024
1
void assign_smt_modelUninterpPrint(Options& opts, const std::string& option, const std::string& optionarg) {
5025
1
  auto value = stringToModelUninterpPrintMode(optionarg);
5026
5027
1
  opts.smt.modelUninterpPrint = value;
5028
1
  opts.smt.modelUninterpPrintWasSetByUser = true;
5029
1
  Trace("options") << "user assigned option modelUninterpPrint = " << value << std::endl;
5030
1
}
5031
5032
1
void assign_smt_modelWitnessValue(Options& opts, const std::string& option, bool value) {
5033
5034
1
  opts.smt.modelWitnessValue = value;
5035
1
  opts.smt.modelWitnessValueWasSetByUser = true;
5036
1
  Trace("options") << "user assigned option modelWitnessValue = " << value << std::endl;
5037
1
}
5038
5039
void assign_smt_doITESimpOnRepeat(Options& opts, const std::string& option, bool value) {
5040
5041
  opts.smt.doITESimpOnRepeat = value;
5042
  opts.smt.doITESimpOnRepeatWasSetByUser = true;
5043
  Trace("options") << "user assigned option doITESimpOnRepeat = " << value << std::endl;
5044
}
5045
5046
21
void assign_smt_produceAbducts(Options& opts, const std::string& option, bool value) {
5047
5048
21
  opts.smt.produceAbducts = value;
5049
21
  opts.smt.produceAbductsWasSetByUser = true;
5050
21
  Trace("options") << "user assigned option produceAbducts = " << value << std::endl;
5051
21
}
5052
5053
26
void assign_smt_produceAssertions(Options& opts, const std::string& option, bool value) {
5054
26
  opts.handler().setProduceAssertions("produce-assertions", option, value);
5055
26
  opts.smt.produceAssertions = value;
5056
26
  opts.smt.produceAssertionsWasSetByUser = true;
5057
26
  Trace("options") << "user assigned option produceAssertions = " << value << std::endl;
5058
26
}
5059
5060
4
void assign_smt_produceAssignments(Options& opts, const std::string& option, bool value) {
5061
5062
4
  opts.smt.produceAssignments = value;
5063
4
  opts.smt.produceAssignmentsWasSetByUser = true;
5064
4
  Trace("options") << "user assigned option produceAssignments = " << value << std::endl;
5065
4
}
5066
5067
11
void assign_smt_produceInterpols(Options& opts, const std::string& option, const std::string& optionarg) {
5068
11
  auto value = stringToProduceInterpols(optionarg);
5069
5070
11
  opts.smt.produceInterpols = value;
5071
11
  opts.smt.produceInterpolsWasSetByUser = true;
5072
11
  Trace("options") << "user assigned option produceInterpols = " << value << std::endl;
5073
11
}
5074
5075
796
void assign_smt_produceModels(Options& opts, const std::string& option, bool value) {
5076
5077
796
  opts.smt.produceModels = value;
5078
796
  opts.smt.produceModelsWasSetByUser = true;
5079
796
  Trace("options") << "user assigned option produceModels = " << value << std::endl;
5080
796
}
5081
5082
31
void assign_smt_produceProofs(Options& opts, const std::string& option, bool value) {
5083
5084
31
  opts.smt.produceProofs = value;
5085
31
  opts.smt.produceProofsWasSetByUser = true;
5086
31
  Trace("options") << "user assigned option produceProofs = " << value << std::endl;
5087
31
}
5088
5089
15
void assign_smt_unsatAssumptions(Options& opts, const std::string& option, bool value) {
5090
5091
15
  opts.smt.unsatAssumptions = value;
5092
15
  opts.smt.unsatAssumptionsWasSetByUser = true;
5093
15
  Trace("options") << "user assigned option unsatAssumptions = " << value << std::endl;
5094
15
}
5095
5096
21
void assign_smt_unsatCores(Options& opts, const std::string& option, bool value) {
5097
5098
21
  opts.smt.unsatCores = value;
5099
21
  opts.smt.unsatCoresWasSetByUser = true;
5100
21
  Trace("options") << "user assigned option unsatCores = " << value << std::endl;
5101
21
}
5102
5103
4
void assign_smt_repeatSimp(Options& opts, const std::string& option, bool value) {
5104
5105
4
  opts.smt.repeatSimp = value;
5106
4
  opts.smt.repeatSimpWasSetByUser = true;
5107
4
  Trace("options") << "user assigned option repeatSimp = " << value << std::endl;
5108
4
}
5109
5110
3
void assign_smt_compressItes(Options& opts, const std::string& option, bool value) {
5111
5112
3
  opts.smt.compressItes = value;
5113
3
  opts.smt.compressItesWasSetByUser = true;
5114
3
  Trace("options") << "user assigned option compressItes = " << value << std::endl;
5115
3
}
5116
5117
void assign_smt_zombieHuntThreshold(Options& opts, const std::string& option, const std::string& optionarg) {
5118
  auto value = handleOption<uint64_t>("simp-ite-hunt-zombies", option, optionarg);
5119
5120
  opts.smt.zombieHuntThreshold = value;
5121
  opts.smt.zombieHuntThresholdWasSetByUser = true;
5122
  Trace("options") << "user assigned option zombieHuntThreshold = " << value << std::endl;
5123
}
5124
5125
void assign_smt_simplifyWithCareEnabled(Options& opts, const std::string& option, bool value) {
5126
5127
  opts.smt.simplifyWithCareEnabled = value;
5128
  opts.smt.simplifyWithCareEnabledWasSetByUser = true;
5129
  Trace("options") << "user assigned option simplifyWithCareEnabled = " << value << std::endl;
5130
}
5131
5132
32
void assign_smt_simplificationMode(Options& opts, const std::string& option, const std::string& optionarg) {
5133
32
  auto value = stringToSimplificationMode(optionarg);
5134
5135
32
  opts.smt.simplificationMode = value;
5136
32
  opts.smt.simplificationModeWasSetByUser = true;
5137
32
  Trace("options") << "user assigned option simplificationMode = " << value << std::endl;
5138
32
}
5139
5140
149
void assign_smt_solveBVAsInt(Options& opts, const std::string& option, const std::string& optionarg) {
5141
149
  auto value = stringToSolveBVAsIntMode(optionarg);
5142
5143
149
  opts.smt.solveBVAsInt = value;
5144
149
  opts.smt.solveBVAsIntWasSetByUser = true;
5145
149
  Trace("options") << "user assigned option solveBVAsInt = " << value << std::endl;
5146
149
}
5147
5148
15
void assign_smt_solveIntAsBV(Options& opts, const std::string& option, const std::string& optionarg) {
5149
15
  auto value = handleOption<uint64_t>("solve-int-as-bv", option, optionarg);
5150
5151
15
  opts.smt.solveIntAsBV = value;
5152
15
  opts.smt.solveIntAsBVWasSetByUser = true;
5153
15
  Trace("options") << "user assigned option solveIntAsBV = " << value << std::endl;
5154
15
}
5155
5156
9
void assign_smt_solveRealAsInt(Options& opts, const std::string& option, bool value) {
5157
5158
9
  opts.smt.solveRealAsInt = value;
5159
9
  opts.smt.solveRealAsIntWasSetByUser = true;
5160
9
  Trace("options") << "user assigned option solveRealAsInt = " << value << std::endl;
5161
9
}
5162
5163
26
void assign_smt_sortInference(Options& opts, const std::string& option, bool value) {
5164
5165
26
  opts.smt.sortInference = value;
5166
26
  opts.smt.sortInferenceWasSetByUser = true;
5167
26
  Trace("options") << "user assigned option sortInference = " << value << std::endl;
5168
26
}
5169
5170
void assign_smt_doStaticLearning(Options& opts, const std::string& option, bool value) {
5171
5172
  opts.smt.doStaticLearning = value;
5173
  opts.smt.doStaticLearningWasSetByUser = true;
5174
  Trace("options") << "user assigned option doStaticLearning = " << value << std::endl;
5175
}
5176
5177
182
void assign_smt_sygusOut(Options& opts, const std::string& option, const std::string& optionarg) {
5178
182
  auto value = stringToSygusSolutionOutMode(optionarg);
5179
5180
182
  opts.smt.sygusOut = value;
5181
182
  opts.smt.sygusOutWasSetByUser = true;
5182
182
  Trace("options") << "user assigned option sygusOut = " << value << std::endl;
5183
182
}
5184
5185
void assign_smt_sygusPrintCallbacks(Options& opts, const std::string& option, bool value) {
5186
5187
  opts.smt.sygusPrintCallbacks = value;
5188
  opts.smt.sygusPrintCallbacksWasSetByUser = true;
5189
  Trace("options") << "user assigned option sygusPrintCallbacks = " << value << std::endl;
5190
}
5191
5192
107
void assign_smt_unconstrainedSimp(Options& opts, const std::string& option, bool value) {
5193
5194
107
  opts.smt.unconstrainedSimp = value;
5195
107
  opts.smt.unconstrainedSimpWasSetByUser = true;
5196
107
  Trace("options") << "user assigned option unconstrainedSimp = " << value << std::endl;
5197
107
}
5198
5199
2
void assign_smt_unsatCoresMode(Options& opts, const std::string& option, const std::string& optionarg) {
5200
2
  auto value = stringToUnsatCoresMode(optionarg);
5201
5202
2
  opts.smt.unsatCoresMode = value;
5203
2
  opts.smt.unsatCoresModeWasSetByUser = true;
5204
2
  Trace("options") << "user assigned option unsatCoresMode = " << value << std::endl;
5205
2
}
5206
5207
51
void assign_strings_regExpElim(Options& opts, const std::string& option, bool value) {
5208
5209
51
  opts.strings.regExpElim = value;
5210
51
  opts.strings.regExpElimWasSetByUser = true;
5211
51
  Trace("options") << "user assigned option regExpElim = " << value << std::endl;
5212
51
}
5213
5214
20
void assign_strings_regExpElimAgg(Options& opts, const std::string& option, bool value) {
5215
5216
20
  opts.strings.regExpElimAgg = value;
5217
20
  opts.strings.regExpElimAggWasSetByUser = true;
5218
20
  Trace("options") << "user assigned option regExpElimAgg = " << value << std::endl;
5219
20
}
5220
5221
void assign_strings_stringRegExpInterMode(Options& opts, const std::string& option, const std::string& optionarg) {
5222
  auto value = stringToRegExpInterMode(optionarg);
5223
5224
  opts.strings.stringRegExpInterMode = value;
5225
  opts.strings.stringRegExpInterModeWasSetByUser = true;
5226
  Trace("options") << "user assigned option stringRegExpInterMode = " << value << std::endl;
5227
}
5228
5229
void assign_strings_stringCheckEntailLen(Options& opts, const std::string& option, bool value) {
5230
5231
  opts.strings.stringCheckEntailLen = value;
5232
  opts.strings.stringCheckEntailLenWasSetByUser = true;
5233
  Trace("options") << "user assigned option stringCheckEntailLen = " << value << std::endl;
5234
}
5235
5236
2
void assign_strings_stringEager(Options& opts, const std::string& option, bool value) {
5237
5238
2
  opts.strings.stringEager = value;
5239
2
  opts.strings.stringEagerWasSetByUser = true;
5240
2
  Trace("options") << "user assigned option stringEager = " << value << std::endl;
5241
2
}
5242
5243
void assign_strings_stringEagerEval(Options& opts, const std::string& option, bool value) {
5244
5245
  opts.strings.stringEagerEval = value;
5246
  opts.strings.stringEagerEvalWasSetByUser = true;
5247
  Trace("options") << "user assigned option stringEagerEval = " << value << std::endl;
5248
}
5249
5250
void assign_strings_stringEagerLen(Options& opts, const std::string& option, bool value) {
5251
5252
  opts.strings.stringEagerLen = value;
5253
  opts.strings.stringEagerLenWasSetByUser = true;
5254
  Trace("options") << "user assigned option stringEagerLen = " << value << std::endl;
5255
}
5256
5257
552
void assign_strings_stringExp(Options& opts, const std::string& option, bool value) {
5258
5259
552
  opts.strings.stringExp = value;
5260
552
  opts.strings.stringExpWasSetByUser = true;
5261
552
  Trace("options") << "user assigned option stringExp = " << value << std::endl;
5262
552
}
5263
5264
void assign_strings_stringFlatForms(Options& opts, const std::string& option, bool value) {
5265
5266
  opts.strings.stringFlatForms = value;
5267
  opts.strings.stringFlatFormsWasSetByUser = true;
5268
  Trace("options") << "user assigned option stringFlatForms = " << value << std::endl;
5269
}
5270
5271
51
void assign_strings_stringFMF(Options& opts, const std::string& option, bool value) {
5272
5273
51
  opts.strings.stringFMF = value;
5274
51
  opts.strings.stringFMFWasSetByUser = true;
5275
51
  Trace("options") << "user assigned option stringFMF = " << value << std::endl;
5276
51
}
5277
5278
void assign_strings_stringGuessModel(Options& opts, const std::string& option, bool value) {
5279
5280
  opts.strings.stringGuessModel = value;
5281
  opts.strings.stringGuessModelWasSetByUser = true;
5282
  Trace("options") << "user assigned option stringGuessModel = " << value << std::endl;
5283
}
5284
5285
void assign_strings_stringInferAsLemmas(Options& opts, const std::string& option, bool value) {
5286
5287
  opts.strings.stringInferAsLemmas = value;
5288
  opts.strings.stringInferAsLemmasWasSetByUser = true;
5289
  Trace("options") << "user assigned option stringInferAsLemmas = " << value << std::endl;
5290
}
5291
5292
void assign_strings_stringInferSym(Options& opts, const std::string& option, bool value) {
5293
5294
  opts.strings.stringInferSym = value;
5295
  opts.strings.stringInferSymWasSetByUser = true;
5296
  Trace("options") << "user assigned option stringInferSym = " << value << std::endl;
5297
}
5298
5299
32
void assign_strings_stringLazyPreproc(Options& opts, const std::string& option, bool value) {
5300
5301
32
  opts.strings.stringLazyPreproc = value;
5302
32
  opts.strings.stringLazyPreprocWasSetByUser = true;
5303
32
  Trace("options") << "user assigned option stringLazyPreproc = " << value << std::endl;
5304
32
}
5305
5306
void assign_strings_stringLenNorm(Options& opts, const std::string& option, bool value) {
5307
5308
  opts.strings.stringLenNorm = value;
5309
  opts.strings.stringLenNormWasSetByUser = true;
5310
  Trace("options") << "user assigned option stringLenNorm = " << value << std::endl;
5311
}
5312
5313
void assign_strings_stringLenPropCsp(Options& opts, const std::string& option, bool value) {
5314
5315
  opts.strings.stringLenPropCsp = value;
5316
  opts.strings.stringLenPropCspWasSetByUser = true;
5317
  Trace("options") << "user assigned option stringLenPropCsp = " << value << std::endl;
5318
}
5319
5320
void assign_strings_stringMinPrefixExplain(Options& opts, const std::string& option, bool value) {
5321
5322
  opts.strings.stringMinPrefixExplain = value;
5323
  opts.strings.stringMinPrefixExplainWasSetByUser = true;
5324
  Trace("options") << "user assigned option stringMinPrefixExplain = " << value << std::endl;
5325
}
5326
5327
void assign_strings_stringProcessLoopMode(Options& opts, const std::string& option, const std::string& optionarg) {
5328
  auto value = stringToProcessLoopMode(optionarg);
5329
5330
  opts.strings.stringProcessLoopMode = value;
5331
  opts.strings.stringProcessLoopModeWasSetByUser = true;
5332
  Trace("options") << "user assigned option stringProcessLoopMode = " << value << std::endl;
5333
}
5334
5335
void assign_strings_stringRExplainLemmas(Options& opts, const std::string& option, bool value) {
5336
5337
  opts.strings.stringRExplainLemmas = value;
5338
  opts.strings.stringRExplainLemmasWasSetByUser = true;
5339
  Trace("options") << "user assigned option stringRExplainLemmas = " << value << std::endl;
5340
}
5341
5342
void assign_strings_stringUnifiedVSpt(Options& opts, const std::string& option, bool value) {
5343
5344
  opts.strings.stringUnifiedVSpt = value;
5345
  opts.strings.stringUnifiedVSptWasSetByUser = true;
5346
  Trace("options") << "user assigned option stringUnifiedVSpt = " << value << std::endl;
5347
}
5348
5349
2
void assign_theory_assignFunctionValues(Options& opts, const std::string& option, bool value) {
5350
5351
2
  opts.theory.assignFunctionValues = value;
5352
2
  opts.theory.assignFunctionValuesWasSetByUser = true;
5353
2
  Trace("options") << "user assigned option assignFunctionValues = " << value << std::endl;
5354
2
}
5355
5356
void assign_theory_condenseFunctionValues(Options& opts, const std::string& option, bool value) {
5357
5358
  opts.theory.condenseFunctionValues = value;
5359
  opts.theory.condenseFunctionValuesWasSetByUser = true;
5360
  Trace("options") << "user assigned option condenseFunctionValues = " << value << std::endl;
5361
}
5362
5363
56
void assign_theory_eeMode(Options& opts, const std::string& option, const std::string& optionarg) {
5364
56
  auto value = stringToEqEngineMode(optionarg);
5365
5366
56
  opts.theory.eeMode = value;
5367
56
  opts.theory.eeModeWasSetByUser = true;
5368
56
  Trace("options") << "user assigned option eeMode = " << value << std::endl;
5369
56
}
5370
5371
void assign_theory_relevanceFilter(Options& opts, const std::string& option, bool value) {
5372
5373
  opts.theory.relevanceFilter = value;
5374
  opts.theory.relevanceFilterWasSetByUser = true;
5375
  Trace("options") << "user assigned option relevanceFilter = " << value << std::endl;
5376
}
5377
5378
void assign_theory_tcMode(Options& opts, const std::string& option, const std::string& optionarg) {
5379
  auto value = stringToTcMode(optionarg);
5380
5381
  opts.theory.tcMode = value;
5382
  opts.theory.tcModeWasSetByUser = true;
5383
  Trace("options") << "user assigned option tcMode = " << value << std::endl;
5384
}
5385
5386
5
void assign_theory_theoryOfMode(Options& opts, const std::string& option, const std::string& optionarg) {
5387
5
  auto value = stringToTheoryOfMode(optionarg);
5388
5389
5
  opts.theory.theoryOfMode = value;
5390
5
  opts.theory.theoryOfModeWasSetByUser = true;
5391
5
  Trace("options") << "user assigned option theoryOfMode = " << value << std::endl;
5392
5
}
5393
5394
void assign_uf_ufSymmetryBreaker(Options& opts, const std::string& option, bool value) {
5395
5396
  opts.uf.ufSymmetryBreaker = value;
5397
  opts.uf.ufSymmetryBreakerWasSetByUser = true;
5398
  Trace("options") << "user assigned option ufSymmetryBreaker = " << value << std::endl;
5399
}
5400
5401
void assign_uf_ufHo(Options& opts, const std::string& option, bool value) {
5402
5403
  opts.uf.ufHo = value;
5404
  opts.uf.ufHoWasSetByUser = true;
5405
  Trace("options") << "user assigned option ufHo = " << value << std::endl;
5406
}
5407
5408
void assign_uf_ufHoExt(Options& opts, const std::string& option, bool value) {
5409
5410
  opts.uf.ufHoExt = value;
5411
  opts.uf.ufHoExtWasSetByUser = true;
5412
  Trace("options") << "user assigned option ufHoExt = " << value << std::endl;
5413
}
5414
5415
void assign_uf_ufssAbortCardinality(Options& opts, const std::string& option, const std::string& optionarg) {
5416
  auto value = handleOption<int64_t>("uf-ss-abort-card", option, optionarg);
5417
5418
  opts.uf.ufssAbortCardinality = value;
5419
  opts.uf.ufssAbortCardinalityWasSetByUser = true;
5420
  Trace("options") << "user assigned option ufssAbortCardinality = " << value << std::endl;
5421
}
5422
5423
void assign_uf_ufssFairness(Options& opts, const std::string& option, bool value) {
5424
5425
  opts.uf.ufssFairness = value;
5426
  opts.uf.ufssFairnessWasSetByUser = true;
5427
  Trace("options") << "user assigned option ufssFairness = " << value << std::endl;
5428
}
5429
5430
4
void assign_uf_ufssFairnessMonotone(Options& opts, const std::string& option, bool value) {
5431
5432
4
  opts.uf.ufssFairnessMonotone = value;
5433
4
  opts.uf.ufssFairnessMonotoneWasSetByUser = true;
5434
4
  Trace("options") << "user assigned option ufssFairnessMonotone = " << value << std::endl;
5435
4
}
5436
5437
void assign_uf_ufssTotalityLimited(Options& opts, const std::string& option, const std::string& optionarg) {
5438
  auto value = handleOption<int64_t>("uf-ss-totality-limited", option, optionarg);
5439
5440
  opts.uf.ufssTotalityLimited = value;
5441
  opts.uf.ufssTotalityLimitedWasSetByUser = true;
5442
  Trace("options") << "user assigned option ufssTotalityLimited = " << value << std::endl;
5443
}
5444
5445
void assign_uf_ufssTotalitySymBreak(Options& opts, const std::string& option, bool value) {
5446
5447
  opts.uf.ufssTotalitySymBreak = value;
5448
  opts.uf.ufssTotalitySymBreakWasSetByUser = true;
5449
  Trace("options") << "user assigned option ufssTotalitySymBreak = " << value << std::endl;
5450
}
5451
5452
7
void assign_uf_ufssMode(Options& opts, const std::string& option, const std::string& optionarg) {
5453
7
  auto value = stringToUfssMode(optionarg);
5454
5455
7
  opts.uf.ufssMode = value;
5456
7
  opts.uf.ufssModeWasSetByUser = true;
5457
7
  Trace("options") << "user assigned option ufssMode = " << value << std::endl;
5458
7
}
5459
// clang-format off
5460
5461
8805
void parseInternal(Options& opts, int argc,
5462
                                    char* argv[],
5463
                                    std::vector<std::string>& nonoptions)
5464
{
5465
8805
  Assert(argv != nullptr);
5466
8805
  if(Debug.isOn("options")) {
5467
    Debug("options") << "starting a new parseInternal with "
5468
                     << argc << " arguments" << std::endl;
5469
    for( int i = 0; i < argc ; i++ ){
5470
      Assert(argv[i] != NULL);
5471
      Debug("options") << "  argv[" << i << "] = " << argv[i] << std::endl;
5472
    }
5473
  }
5474
5475
  // Reset getopt(), in the case of multiple calls to parse().
5476
  // This can be = 1 in newer GNU getopt, but older (< 2007) require = 0.
5477
8805
  optind = 0;
5478
#if HAVE_DECL_OPTRESET
5479
  optreset = 1; // on BSD getopt() (e.g. Mac OS), might need this
5480
#endif /* HAVE_DECL_OPTRESET */
5481
5482
  // We must parse the binary name, which is manually ignored below. Setting
5483
  // this to 1 leads to incorrect behavior on some platforms.
5484
8805
  int main_optind = 0;
5485
  int old_optind;
5486
5487
5488
  while(true) { // Repeat Forever
5489
5490
24273
    optopt = 0;
5491
32239
    std::string option, optionarg;
5492
5493
24273
    optind = main_optind;
5494
24273
    old_optind = main_optind;
5495
5496
    // If we encounter an element that is not at zero and does not start
5497
    // with a "-", this is a non-option. We consume this element as a
5498
    // non-option.
5499
39677
    if (main_optind > 0 && main_optind < argc &&
5500
9273
        argv[main_optind][0] != '-') {
5501
12262
      Debug("options") << "enqueueing " << argv[main_optind]
5502
6131
                       << " as a non-option." << std::endl;
5503
6131
      nonoptions.push_back(argv[main_optind]);
5504
6131
      ++main_optind;
5505
6131
      continue;
5506
    }
5507
5508
5509
36284
    Debug("options") << "[ before, main_optind == " << main_optind << " ]"
5510
18142
                     << std::endl;
5511
18142
    Debug("options") << "[ before, optind == " << optind << " ]" << std::endl;
5512
36284
    Debug("options") << "[ argc == " << argc << ", argv == " << argv << " ]"
5513
18142
                     << std::endl;
5514
    // clang-format off
5515
18142
    int c = getopt_long(argc, argv,
5516
                        "+:d:iL:o:qt:vhs:Vm",
5517
18142
                        cmdlineOptions, NULL);
5518
    // clang-format on
5519
5520
18142
    main_optind = optind;
5521
5522
36284
    Debug("options") << "[ got " << int(c) << " (" << char(c) << ") ]"
5523
18142
                     << "[ next option will be at pos: " << optind << " ]"
5524
18142
                     << std::endl;
5525
5526
    // The initial getopt_long call should always determine that argv[0]
5527
    // is not an option and returns -1. We always manually advance beyond
5528
    // this element.
5529
19514
    if ( old_optind == 0  && c == -1 ) {
5530
1372
      Assert(main_optind > 0);
5531
1372
      continue;
5532
    }
5533
5534
16770
    if ( c == -1 ) {
5535
6195
      if(Debug.isOn("options")) {
5536
        Debug("options") << "done with option parsing" << std::endl;
5537
        for(int index = optind; index < argc; ++index) {
5538
          Debug("options") << "remaining " << argv[index] << std::endl;
5539
        }
5540
      }
5541
6195
      break;
5542
    }
5543
5544
10575
    option = argv[old_optind == 0 ? 1 : old_optind];
5545
10575
    optionarg = (optarg == NULL) ? "" : optarg;
5546
5547
21150
    Debug("preemptGetopt") << "processing option " << c
5548
10575
                           << " (`" << char(c) << "'), " << option << std::endl;
5549
5550
    // clang-format off
5551
10575
    switch(c)
5552
    {
5553
case 256: // --approx-branch-depth=N
5554
        assign_arith_maxApproxDepth(opts, option, optionarg);
5555
      break;
5556
2
    case 257: // --arith-brab
5557
2
        assign_arith_brabTest(opts, option, true);
5558
2
      break;
5559
2
    case 258:// --no-arith-brab
5560
2
        assign_arith_brabTest(opts, option, false);
5561
2
      break;
5562
    case 259: // --arith-cong-man
5563
        assign_arith_arithCongMan(opts, option, true);
5564
      break;
5565
    case 260:// --no-arith-cong-man
5566
        assign_arith_arithCongMan(opts, option, false);
5567
      break;
5568
6
    case 261: // --arith-eq-solver
5569
6
        assign_arith_arithEqSolver(opts, option, true);
5570
6
      break;
5571
    case 262:// --no-arith-eq-solver
5572
        assign_arith_arithEqSolver(opts, option, false);
5573
      break;
5574
    case 263: // --arith-no-partial-fun
5575
        assign_arith_arithNoPartialFun(opts, option, true);
5576
      break;
5577
    case 264:// --no-arith-no-partial-fun
5578
        assign_arith_arithNoPartialFun(opts, option, false);
5579
      break;
5580
    case 265: // --arith-prop-clauses=N
5581
        assign_arith_arithPropAsLemmaLength(opts, option, optionarg);
5582
      break;
5583
    case 266: // --arith-prop=MODE
5584
        assign_arith_arithPropagationMode(opts, option, optionarg);
5585
      break;
5586
4
    case 267: // --arith-rewrite-equalities
5587
4
        assign_arith_arithRewriteEq(opts, option, true);
5588
4
      break;
5589
    case 268:// --no-arith-rewrite-equalities
5590
        assign_arith_arithRewriteEq(opts, option, false);
5591
      break;
5592
    case 269: // --collect-pivot-stats
5593
        assign_arith_collectPivots(opts, option, true);
5594
      break;
5595
    case 270:// --no-collect-pivot-stats
5596
        assign_arith_collectPivots(opts, option, false);
5597
      break;
5598
    case 271: // --cut-all-bounded
5599
        assign_arith_doCutAllBounded(opts, option, true);
5600
      break;
5601
    case 272:// --no-cut-all-bounded
5602
        assign_arith_doCutAllBounded(opts, option, false);
5603
      break;
5604
    case 273: // --dio-decomps
5605
        assign_arith_exportDioDecompositions(opts, option, true);
5606
      break;
5607
    case 274:// --no-dio-decomps
5608
        assign_arith_exportDioDecompositions(opts, option, false);
5609
      break;
5610
    case 275: // --dio-repeat
5611
        assign_arith_dioRepeat(opts, option, true);
5612
      break;
5613
    case 276:// --no-dio-repeat
5614
        assign_arith_dioRepeat(opts, option, false);
5615
      break;
5616
    case 277: // --dio-solver
5617
        assign_arith_arithDioSolver(opts, option, true);
5618
      break;
5619
    case 278:// --no-dio-solver
5620
        assign_arith_arithDioSolver(opts, option, false);
5621
      break;
5622
    case 279: // --dio-turns=N
5623
        assign_arith_dioSolverTurns(opts, option, optionarg);
5624
      break;
5625
    case 280: // --error-selection-rule=RULE
5626
        assign_arith_arithErrorSelectionRule(opts, option, optionarg);
5627
      break;
5628
    case 281: // --fc-penalties
5629
        assign_arith_havePenalties(opts, option, true);
5630
      break;
5631
    case 282:// --no-fc-penalties
5632
        assign_arith_havePenalties(opts, option, false);
5633
      break;
5634
    case 283: // --heuristic-pivots=N
5635
        assign_arith_arithHeuristicPivots(opts, option, optionarg);
5636
      break;
5637
    case 284: // --lemmas-on-replay-failure
5638
        assign_arith_replayFailureLemma(opts, option, true);
5639
      break;
5640
    case 285:// --no-lemmas-on-replay-failure
5641
        assign_arith_replayFailureLemma(opts, option, false);
5642
      break;
5643
    case 286: // --maxCutsInContext=N
5644
        assign_arith_maxCutsInContext(opts, option, optionarg);
5645
      break;
5646
8
    case 287: // --miplib-trick
5647
8
        assign_arith_arithMLTrick(opts, option, true);
5648
8
      break;
5649
    case 288:// --no-miplib-trick
5650
        assign_arith_arithMLTrick(opts, option, false);
5651
      break;
5652
    case 289: // --miplib-trick-subs=N
5653
        assign_arith_arithMLTrickSubstitutions(opts, option, optionarg);
5654
      break;
5655
    case 290: // --new-prop
5656
        assign_arith_newProp(opts, option, true);
5657
      break;
5658
8
    case 291:// --no-new-prop
5659
8
        assign_arith_newProp(opts, option, false);
5660
8
      break;
5661
5
    case 292: // --nl-cad
5662
5
        assign_arith_nlCad(opts, option, true);
5663
5
      break;
5664
    case 293:// --no-nl-cad
5665
        assign_arith_nlCad(opts, option, false);
5666
      break;
5667
    case 294: // --nl-cad-initial
5668
        assign_arith_nlCadUseInitial(opts, option, true);
5669
      break;
5670
    case 295:// --no-nl-cad-initial
5671
        assign_arith_nlCadUseInitial(opts, option, false);
5672
      break;
5673
    case 296: // --nl-cad-lift=MODE
5674
        assign_arith_nlCadLifting(opts, option, optionarg);
5675
      break;
5676
    case 297: // --nl-cad-proj=MODE
5677
        assign_arith_nlCadProjection(opts, option, optionarg);
5678
      break;
5679
    case 298: // --nl-ext-ent-conf
5680
        assign_arith_nlExtEntailConflicts(opts, option, true);
5681
      break;
5682
    case 299:// --no-nl-ext-ent-conf
5683
        assign_arith_nlExtEntailConflicts(opts, option, false);
5684
      break;
5685
    case 300: // --nl-ext-factor
5686
        assign_arith_nlExtFactor(opts, option, true);
5687
      break;
5688
    case 301:// --no-nl-ext-factor
5689
        assign_arith_nlExtFactor(opts, option, false);
5690
      break;
5691
    case 302: // --nl-ext-inc-prec
5692
        assign_arith_nlExtIncPrecision(opts, option, true);
5693
      break;
5694
2
    case 303:// --no-nl-ext-inc-prec
5695
2
        assign_arith_nlExtIncPrecision(opts, option, false);
5696
2
      break;
5697
2
    case 304: // --nl-ext-purify
5698
2
        assign_arith_nlExtPurify(opts, option, true);
5699
2
      break;
5700
    case 305:// --no-nl-ext-purify
5701
        assign_arith_nlExtPurify(opts, option, false);
5702
      break;
5703
    case 306: // --nl-ext-rbound
5704
        assign_arith_nlExtResBound(opts, option, true);
5705
      break;
5706
    case 307:// --no-nl-ext-rbound
5707
        assign_arith_nlExtResBound(opts, option, false);
5708
      break;
5709
    case 308: // --nl-ext-rewrite
5710
        assign_arith_nlExtRewrites(opts, option, true);
5711
      break;
5712
    case 309:// --no-nl-ext-rewrite
5713
        assign_arith_nlExtRewrites(opts, option, false);
5714
      break;
5715
    case 310: // --nl-ext-split-zero
5716
        assign_arith_nlExtSplitZero(opts, option, true);
5717
      break;
5718
    case 311:// --no-nl-ext-split-zero
5719
        assign_arith_nlExtSplitZero(opts, option, false);
5720
      break;
5721
    case 312: // --nl-ext-tf-taylor-deg=N
5722
        assign_arith_nlExtTfTaylorDegree(opts, option, optionarg);
5723
      break;
5724
39
    case 313: // --nl-ext-tf-tplanes
5725
39
        assign_arith_nlExtTfTangentPlanes(opts, option, true);
5726
39
      break;
5727
2
    case 314:// --no-nl-ext-tf-tplanes
5728
2
        assign_arith_nlExtTfTangentPlanes(opts, option, false);
5729
2
      break;
5730
42
    case 315: // --nl-ext-tplanes
5731
42
        assign_arith_nlExtTangentPlanes(opts, option, true);
5732
42
      break;
5733
    case 316:// --no-nl-ext-tplanes
5734
        assign_arith_nlExtTangentPlanes(opts, option, false);
5735
      break;
5736
    case 317: // --nl-ext-tplanes-interleave
5737
        assign_arith_nlExtTangentPlanesInterleave(opts, option, true);
5738
      break;
5739
    case 318:// --no-nl-ext-tplanes-interleave
5740
        assign_arith_nlExtTangentPlanesInterleave(opts, option, false);
5741
      break;
5742
125
    case 319: // --nl-ext=MODE
5743
125
        assign_arith_nlExt(opts, option, optionarg);
5744
125
      break;
5745
2
    case 320: // --nl-icp
5746
2
        assign_arith_nlICP(opts, option, true);
5747
2
      break;
5748
    case 321:// --no-nl-icp
5749
        assign_arith_nlICP(opts, option, false);
5750
      break;
5751
10
    case 322: // --nl-rlv=MODE
5752
10
        assign_arith_nlRlvMode(opts, option, optionarg);
5753
10
      break;
5754
2
    case 323: // --pb-rewrites
5755
2
        assign_arith_pbRewrites(opts, option, true);
5756
2
      break;
5757
    case 324:// --no-pb-rewrites
5758
        assign_arith_pbRewrites(opts, option, false);
5759
      break;
5760
    case 325: // --pivot-threshold=N
5761
        assign_arith_arithPivotThreshold(opts, option, optionarg);
5762
      break;
5763
    case 326: // --pp-assert-max-sub-size=N
5764
        assign_arith_ppAssertMaxSubSize(opts, option, optionarg);
5765
      break;
5766
    case 327: // --prop-row-length=N
5767
        assign_arith_arithPropagateMaxLength(opts, option, optionarg);
5768
      break;
5769
    case 328: // --replay-early-close-depth=N
5770
        assign_arith_replayEarlyCloseDepths(opts, option, optionarg);
5771
      break;
5772
    case 329: // --replay-failure-penalty=N
5773
        assign_arith_replayFailurePenalty(opts, option, optionarg);
5774
      break;
5775
    case 330: // --replay-lemma-reject-cut=N
5776
        assign_arith_lemmaRejectCutSize(opts, option, optionarg);
5777
      break;
5778
    case 331: // --replay-num-err-penalty=N
5779
        assign_arith_replayNumericFailurePenalty(opts, option, optionarg);
5780
      break;
5781
    case 332: // --replay-reject-cut=N
5782
        assign_arith_replayRejectCutSize(opts, option, optionarg);
5783
      break;
5784
    case 333: // --replay-soi-major-threshold-pen=N
5785
        assign_arith_soiApproxMajorFailurePen(opts, option, optionarg);
5786
      break;
5787
    case 334: // --replay-soi-major-threshold=T
5788
        assign_arith_soiApproxMajorFailure(opts, option, optionarg);
5789
      break;
5790
    case 335: // --replay-soi-minor-threshold-pen=N
5791
        assign_arith_soiApproxMinorFailurePen(opts, option, optionarg);
5792
      break;
5793
    case 336: // --replay-soi-minor-threshold=T
5794
        assign_arith_soiApproxMinorFailure(opts, option, optionarg);
5795
      break;
5796
    case 337: // --restrict-pivots
5797
        assign_arith_restrictedPivots(opts, option, true);
5798
      break;
5799
    case 338:// --no-restrict-pivots
5800
        assign_arith_restrictedPivots(opts, option, false);
5801
      break;
5802
    case 339: // --revert-arith-models-on-unsat
5803
        assign_arith_revertArithModels(opts, option, true);
5804
      break;
5805
    case 340:// --no-revert-arith-models-on-unsat
5806
        assign_arith_revertArithModels(opts, option, false);
5807
      break;
5808
    case 341: // --rr-turns=N
5809
        assign_arith_rrTurns(opts, option, optionarg);
5810
      break;
5811
    case 342: // --se-solve-int
5812
        assign_arith_trySolveIntStandardEffort(opts, option, true);
5813
      break;
5814
    case 343:// --no-se-solve-int
5815
        assign_arith_trySolveIntStandardEffort(opts, option, false);
5816
      break;
5817
    case 344: // --simplex-check-period=N
5818
        assign_arith_arithSimplexCheckPeriod(opts, option, optionarg);
5819
      break;
5820
    case 345: // --soi-qe
5821
        assign_arith_soiQuickExplain(opts, option, true);
5822
      break;
5823
    case 346:// --no-soi-qe
5824
        assign_arith_soiQuickExplain(opts, option, false);
5825
      break;
5826
    case 347: // --standard-effort-variable-order-pivots=N
5827
        assign_arith_arithStandardCheckVarOrderPivots(opts, option, optionarg);
5828
      break;
5829
    case 348: // --unate-lemmas=MODE
5830
        assign_arith_arithUnateLemmaMode(opts, option, optionarg);
5831
      break;
5832
    case 349: // --use-approx
5833
        assign_arith_useApprox(opts, option, true);
5834
      break;
5835
    case 350:// --no-use-approx
5836
        assign_arith_useApprox(opts, option, false);
5837
      break;
5838
    case 351: // --use-fcsimplex
5839
        assign_arith_useFC(opts, option, true);
5840
      break;
5841
    case 352:// --no-use-fcsimplex
5842
        assign_arith_useFC(opts, option, false);
5843
      break;
5844
    case 353: // --use-soi
5845
        assign_arith_useSOI(opts, option, true);
5846
      break;
5847
    case 354:// --no-use-soi
5848
        assign_arith_useSOI(opts, option, false);
5849
      break;
5850
    case 355: // --arrays-config=N
5851
        assign_arrays_arraysConfig(opts, option, optionarg);
5852
      break;
5853
    case 356: // --arrays-eager-index
5854
        assign_arrays_arraysEagerIndexSplitting(opts, option, true);
5855
      break;
5856
    case 357:// --no-arrays-eager-index
5857
        assign_arrays_arraysEagerIndexSplitting(opts, option, false);
5858
      break;
5859
    case 358: // --arrays-eager-lemmas
5860
        assign_arrays_arraysEagerLemmas(opts, option, true);
5861
      break;
5862
    case 359:// --no-arrays-eager-lemmas
5863
        assign_arrays_arraysEagerLemmas(opts, option, false);
5864
      break;
5865
3
    case 360: // --arrays-exp
5866
3
        assign_arrays_arraysExp(opts, option, true);
5867
3
      break;
5868
    case 361:// --no-arrays-exp
5869
        assign_arrays_arraysExp(opts, option, false);
5870
      break;
5871
    case 362: // --arrays-model-based
5872
        assign_arrays_arraysModelBased(opts, option, true);
5873
      break;
5874
    case 363:// --no-arrays-model-based
5875
        assign_arrays_arraysModelBased(opts, option, false);
5876
      break;
5877
    case 364: // --arrays-optimize-linear
5878
        assign_arrays_arraysOptimizeLinear(opts, option, true);
5879
      break;
5880
    case 365:// --no-arrays-optimize-linear
5881
        assign_arrays_arraysOptimizeLinear(opts, option, false);
5882
      break;
5883
    case 366: // --arrays-prop=N
5884
        assign_arrays_arraysPropagate(opts, option, optionarg);
5885
      break;
5886
    case 367: // --arrays-reduce-sharing
5887
        assign_arrays_arraysReduceSharing(opts, option, true);
5888
      break;
5889
    case 368:// --no-arrays-reduce-sharing
5890
        assign_arrays_arraysReduceSharing(opts, option, false);
5891
      break;
5892
    case 369: // --arrays-weak-equiv
5893
        assign_arrays_arraysWeakEquivalence(opts, option, true);
5894
      break;
5895
    case 370:// --no-arrays-weak-equiv
5896
        assign_arrays_arraysWeakEquivalence(opts, option, false);
5897
      break;
5898
    case 'd':
5899
    case 371: // --debug=TAG
5900
    opts.handler().enableDebugTag("debug", option, optionarg);
5901
      break;
5902
    case 372: // --err=erroutput
5903
    case 373: // --diagnostic-output-channel
5904
        assign_base_err(opts, option, optionarg);
5905
      break;
5906
    case 374: // --in=input
5907
        assign_base_in(opts, option, optionarg);
5908
      break;
5909
664
    case 'i':
5910
    case 375: // --incremental
5911
664
        assign_base_incrementalSolving(opts, option, true);
5912
664
      break;
5913
    case 376:// --no-incremental
5914
        assign_base_incrementalSolving(opts, option, false);
5915
      break;
5916
227
    case 'L':
5917
    case 377: // --lang=LANG
5918
    case 378: // --input-language
5919
227
        assign_base_inputLanguage(opts, option, optionarg);
5920
227
      break;
5921
    case 379: // --out=output
5922
    case 380: // --regular-output-channel
5923
        assign_base_out(opts, option, optionarg);
5924
      break;
5925
64
    case 381: // --output-lang=LANG
5926
    case 382: // --output-language
5927
64
        assign_base_outputLanguage(opts, option, optionarg);
5928
64
      break;
5929
3
    case 'o':
5930
    case 383: // --output=TAG
5931
3
    opts.handler().enableOutputTag("output", option, optionarg);
5932
3
      break;
5933
    case 384: // --parse-only
5934
        assign_base_parseOnly(opts, option, true);
5935
      break;
5936
    case 385:// --no-parse-only
5937
        assign_base_parseOnly(opts, option, false);
5938
      break;
5939
3
    case 386: // --preprocess-only
5940
3
        assign_base_preprocessOnly(opts, option, true);
5941
3
      break;
5942
    case 387:// --no-preprocess-only
5943
        assign_base_preprocessOnly(opts, option, false);
5944
      break;
5945
2
    case 388: // --print-success
5946
2
        assign_base_printSuccess(opts, option, true);
5947
2
      break;
5948
    case 389:// --no-print-success
5949
        assign_base_printSuccess(opts, option, false);
5950
      break;
5951
190
    case 'q':
5952
    case 390: // --quiet
5953
190
    opts.handler().decreaseVerbosity("quiet", option);
5954
190
      break;
5955
    case 391: // --rlimit-per=N
5956
    case 392: // --reproducible-resource-limit
5957
        assign_base_perCallResourceLimit(opts, option, optionarg);
5958
      break;
5959
    case 393: // --rlimit=N
5960
        assign_base_cumulativeResourceLimit(opts, option, optionarg);
5961
      break;
5962
    case 394: // --rweight=VAL=N
5963
    opts.handler().setResourceWeight("rweight", option, optionarg);
5964
      break;
5965
    case 395: // --stats
5966
        assign_base_statistics(opts, option, true);
5967
      break;
5968
    case 396:// --no-stats
5969
        assign_base_statistics(opts, option, false);
5970
      break;
5971
    case 397: // --stats-all
5972
        assign_base_statisticsAll(opts, option, true);
5973
      break;
5974
    case 398:// --no-stats-all
5975
        assign_base_statisticsAll(opts, option, false);
5976
      break;
5977
    case 399: // --stats-every-query
5978
        assign_base_statisticsEveryQuery(opts, option, true);
5979
      break;
5980
    case 400:// --no-stats-every-query
5981
        assign_base_statisticsEveryQuery(opts, option, false);
5982
      break;
5983
    case 401: // --stats-expert
5984
        assign_base_statisticsExpert(opts, option, true);
5985
      break;
5986
    case 402:// --no-stats-expert
5987
        assign_base_statisticsExpert(opts, option, false);
5988
      break;
5989
6
    case 403: // --tlimit-per=MS
5990
6
        assign_base_perCallMillisecondLimit(opts, option, optionarg);
5991
6
      break;
5992
    case 404: // --tlimit=MS
5993
        assign_base_cumulativeMillisecondLimit(opts, option, optionarg);
5994
      break;
5995
    case 't':
5996
    case 405: // --trace=TAG
5997
    opts.handler().enableTraceTag("trace", option, optionarg);
5998
      break;
5999
3
    case 'v':
6000
    case 406: // --verbose
6001
3
    opts.handler().increaseVerbosity("verbose", option);
6002
3
      break;
6003
    case 407: // --verbosity=N
6004
        assign_base_verbosity(opts, option, optionarg);
6005
      break;
6006
    case 408: // --bitblast-aig
6007
        assign_bv_bitvectorAig(opts, option, true);
6008
      break;
6009
    case 409:// --no-bitblast-aig
6010
        assign_bv_bitvectorAig(opts, option, false);
6011
      break;
6012
38
    case 410: // --bitblast=MODE
6013
38
        assign_bv_bitblastMode(opts, option, optionarg);
6014
38
      break;
6015
    case 411: // --bitwise-eq
6016
        assign_bv_bitwiseEq(opts, option, true);
6017
      break;
6018
    case 412:// --no-bitwise-eq
6019
        assign_bv_bitwiseEq(opts, option, false);
6020
      break;
6021
12
    case 413: // --bool-to-bv=MODE
6022
12
        assign_bv_boolToBitvector(opts, option, optionarg);
6023
12
      break;
6024
4
    case 414: // --bv-abstraction
6025
4
        assign_bv_bvAbstraction(opts, option, true);
6026
4
      break;
6027
    case 415:// --no-bv-abstraction
6028
        assign_bv_bvAbstraction(opts, option, false);
6029
      break;
6030
    case 416: // --bv-aig-simp=COMMAND
6031
        assign_bv_bitvectorAigSimplifications(opts, option, optionarg);
6032
      break;
6033
    case 417: // --bv-alg-extf
6034
        assign_bv_bvAlgExtf(opts, option, true);
6035
      break;
6036
    case 418:// --no-bv-alg-extf
6037
        assign_bv_bvAlgExtf(opts, option, false);
6038
      break;
6039
    case 419: // --bv-algebraic-budget=N
6040
        assign_bv_bitvectorAlgebraicBudget(opts, option, optionarg);
6041
      break;
6042
    case 420: // --bv-algebraic-solver
6043
        assign_bv_bitvectorAlgebraicSolver(opts, option, true);
6044
      break;
6045
    case 421:// --no-bv-algebraic-solver
6046
        assign_bv_bitvectorAlgebraicSolver(opts, option, false);
6047
      break;
6048
6
    case 422: // --bv-assert-input
6049
6
        assign_bv_bvAssertInput(opts, option, true);
6050
6
      break;
6051
    case 423:// --no-bv-assert-input
6052
        assign_bv_bvAssertInput(opts, option, false);
6053
      break;
6054
    case 424: // --bv-eager-explanations
6055
        assign_bv_bvEagerExplanations(opts, option, true);
6056
      break;
6057
    case 425:// --no-bv-eager-explanations
6058
        assign_bv_bvEagerExplanations(opts, option, false);
6059
      break;
6060
    case 426: // --bv-eq-solver
6061
        assign_bv_bitvectorEqualitySolver(opts, option, true);
6062
      break;
6063
2
    case 427:// --no-bv-eq-solver
6064
2
        assign_bv_bitvectorEqualitySolver(opts, option, false);
6065
2
      break;
6066
    case 428: // --bv-extract-arith
6067
        assign_bv_bvExtractArithRewrite(opts, option, true);
6068
      break;
6069
    case 429:// --no-bv-extract-arith
6070
        assign_bv_bvExtractArithRewrite(opts, option, false);
6071
      break;
6072
    case 430: // --bv-gauss-elim
6073
        assign_bv_bvGaussElim(opts, option, true);
6074
      break;
6075
    case 431:// --no-bv-gauss-elim
6076
        assign_bv_bvGaussElim(opts, option, false);
6077
      break;
6078
    case 432: // --bv-inequality-solver
6079
        assign_bv_bitvectorInequalitySolver(opts, option, true);
6080
      break;
6081
    case 433:// --no-bv-inequality-solver
6082
        assign_bv_bitvectorInequalitySolver(opts, option, false);
6083
      break;
6084
2
    case 434: // --bv-intro-pow2
6085
2
        assign_bv_bvIntroducePow2(opts, option, true);
6086
2
      break;
6087
    case 435:// --no-bv-intro-pow2
6088
        assign_bv_bvIntroducePow2(opts, option, false);
6089
      break;
6090
    case 436: // --bv-num-func=N
6091
        assign_bv_bvNumFunc(opts, option, optionarg);
6092
      break;
6093
2
    case 437: // --bv-print-consts-as-indexed-symbols
6094
2
        assign_bv_bvPrintConstsAsIndexedSymbols(opts, option, true);
6095
2
      break;
6096
    case 438:// --no-bv-print-consts-as-indexed-symbols
6097
        assign_bv_bvPrintConstsAsIndexedSymbols(opts, option, false);
6098
      break;
6099
    case 439: // --bv-propagate
6100
        assign_bv_bitvectorPropagate(opts, option, true);
6101
      break;
6102
    case 440:// --no-bv-propagate
6103
        assign_bv_bitvectorPropagate(opts, option, false);
6104
      break;
6105
    case 441: // --bv-quick-xplain
6106
        assign_bv_bitvectorQuickXplain(opts, option, true);
6107
      break;
6108
    case 442:// --no-bv-quick-xplain
6109
        assign_bv_bitvectorQuickXplain(opts, option, false);
6110
      break;
6111
14
    case 443: // --bv-sat-solver=MODE
6112
14
        assign_bv_bvSatSolver(opts, option, optionarg);
6113
14
      break;
6114
    case 444: // --bv-skolemize
6115
        assign_bv_skolemizeArguments(opts, option, true);
6116
      break;
6117
    case 445:// --no-bv-skolemize
6118
        assign_bv_skolemizeArguments(opts, option, false);
6119
      break;
6120
44
    case 446: // --bv-solver=MODE
6121
44
        assign_bv_bvSolver(opts, option, optionarg);
6122
44
      break;
6123
10
    case 447: // --bv-to-bool
6124
10
        assign_bv_bitvectorToBool(opts, option, true);
6125
10
      break;
6126
    case 448:// --no-bv-to-bool
6127
        assign_bv_bitvectorToBool(opts, option, false);
6128
      break;
6129
    case 449: // --cdt-bisimilar
6130
        assign_datatypes_cdtBisimilar(opts, option, true);
6131
      break;
6132
    case 450:// --no-cdt-bisimilar
6133
        assign_datatypes_cdtBisimilar(opts, option, false);
6134
      break;
6135
    case 451: // --dt-binary-split
6136
        assign_datatypes_dtBinarySplit(opts, option, true);
6137
      break;
6138
    case 452:// --no-dt-binary-split
6139
        assign_datatypes_dtBinarySplit(opts, option, false);
6140
      break;
6141
    case 453: // --dt-blast-splits
6142
        assign_datatypes_dtBlastSplits(opts, option, true);
6143
      break;
6144
    case 454:// --no-dt-blast-splits
6145
        assign_datatypes_dtBlastSplits(opts, option, false);
6146
      break;
6147
    case 455: // --dt-cyclic
6148
        assign_datatypes_dtCyclic(opts, option, true);
6149
      break;
6150
    case 456:// --no-dt-cyclic
6151
        assign_datatypes_dtCyclic(opts, option, false);
6152
      break;
6153
    case 457: // --dt-force-assignment
6154
        assign_datatypes_dtForceAssignment(opts, option, true);
6155
      break;
6156
    case 458:// --no-dt-force-assignment
6157
        assign_datatypes_dtForceAssignment(opts, option, false);
6158
      break;
6159
    case 459: // --dt-infer-as-lemmas
6160
        assign_datatypes_dtInferAsLemmas(opts, option, true);
6161
      break;
6162
    case 460:// --no-dt-infer-as-lemmas
6163
        assign_datatypes_dtInferAsLemmas(opts, option, false);
6164
      break;
6165
10
    case 461: // --dt-nested-rec
6166
10
        assign_datatypes_dtNestedRec(opts, option, true);
6167
10
      break;
6168
    case 462:// --no-dt-nested-rec
6169
        assign_datatypes_dtNestedRec(opts, option, false);
6170
      break;
6171
    case 463: // --dt-polite-optimize
6172
        assign_datatypes_dtPoliteOptimize(opts, option, true);
6173
      break;
6174
    case 464:// --no-dt-polite-optimize
6175
        assign_datatypes_dtPoliteOptimize(opts, option, false);
6176
      break;
6177
5
    case 465: // --dt-rewrite-error-sel
6178
5
        assign_datatypes_dtRewriteErrorSel(opts, option, true);
6179
5
      break;
6180
    case 466:// --no-dt-rewrite-error-sel
6181
        assign_datatypes_dtRewriteErrorSel(opts, option, false);
6182
      break;
6183
    case 467: // --dt-share-sel
6184
        assign_datatypes_dtSharedSelectors(opts, option, true);
6185
      break;
6186
    case 468:// --no-dt-share-sel
6187
        assign_datatypes_dtSharedSelectors(opts, option, false);
6188
      break;
6189
11
    case 469: // --sygus-abort-size=N
6190
11
        assign_datatypes_sygusAbortSize(opts, option, optionarg);
6191
11
      break;
6192
    case 470: // --sygus-fair-max
6193
        assign_datatypes_sygusFairMax(opts, option, true);
6194
      break;
6195
    case 471:// --no-sygus-fair-max
6196
        assign_datatypes_sygusFairMax(opts, option, false);
6197
      break;
6198
2
    case 472: // --sygus-fair=MODE
6199
2
        assign_datatypes_sygusFair(opts, option, optionarg);
6200
2
      break;
6201
    case 473: // --sygus-sym-break
6202
        assign_datatypes_sygusSymBreak(opts, option, true);
6203
      break;
6204
6
    case 474:// --no-sygus-sym-break
6205
6
        assign_datatypes_sygusSymBreak(opts, option, false);
6206
6
      break;
6207
    case 475: // --sygus-sym-break-agg
6208
        assign_datatypes_sygusSymBreakAgg(opts, option, true);
6209
      break;
6210
    case 476:// --no-sygus-sym-break-agg
6211
        assign_datatypes_sygusSymBreakAgg(opts, option, false);
6212
      break;
6213
    case 477: // --sygus-sym-break-dynamic
6214
        assign_datatypes_sygusSymBreakDynamic(opts, option, true);
6215
      break;
6216
    case 478:// --no-sygus-sym-break-dynamic
6217
        assign_datatypes_sygusSymBreakDynamic(opts, option, false);
6218
      break;
6219
    case 479: // --sygus-sym-break-lazy
6220
        assign_datatypes_sygusSymBreakLazy(opts, option, true);
6221
      break;
6222
    case 480:// --no-sygus-sym-break-lazy
6223
        assign_datatypes_sygusSymBreakLazy(opts, option, false);
6224
      break;
6225
    case 481: // --sygus-sym-break-pbe
6226
        assign_datatypes_sygusSymBreakPbe(opts, option, true);
6227
      break;
6228
    case 482:// --no-sygus-sym-break-pbe
6229
        assign_datatypes_sygusSymBreakPbe(opts, option, false);
6230
      break;
6231
    case 483: // --sygus-sym-break-rlv
6232
        assign_datatypes_sygusSymBreakRlv(opts, option, true);
6233
      break;
6234
    case 484:// --no-sygus-sym-break-rlv
6235
        assign_datatypes_sygusSymBreakRlv(opts, option, false);
6236
      break;
6237
    case 485: // --decision-random-weight=N
6238
        assign_decision_decisionRandomWeight(opts, option, optionarg);
6239
      break;
6240
    case 486: // --decision-threshold=N
6241
        assign_decision_decisionThreshold(opts, option, optionarg);
6242
      break;
6243
    case 487: // --decision-use-weight
6244
        assign_decision_decisionUseWeight(opts, option, true);
6245
      break;
6246
    case 488:// --no-decision-use-weight
6247
        assign_decision_decisionUseWeight(opts, option, false);
6248
      break;
6249
    case 489: // --decision-weight-internal=HOW
6250
        assign_decision_decisionWeightInternal(opts, option, optionarg);
6251
      break;
6252
94
    case 490: // --decision=MODE
6253
    case 491: // --decision-mode
6254
94
        assign_decision_decisionMode(opts, option, optionarg);
6255
94
      break;
6256
3
    case 492: // --jh-rlv-order
6257
3
        assign_decision_jhRlvOrder(opts, option, true);
6258
3
      break;
6259
7
    case 493:// --no-jh-rlv-order
6260
7
        assign_decision_jhRlvOrder(opts, option, false);
6261
7
      break;
6262
    case 494: // --jh-skolem-rlv=MODE
6263
        assign_decision_jhSkolemRlvMode(opts, option, optionarg);
6264
      break;
6265
    case 495: // --jh-skolem=MODE
6266
        assign_decision_jhSkolemMode(opts, option, optionarg);
6267
      break;
6268
1
    case 496: // --dag-thresh=N
6269
1
        assign_expr_defaultDagThresh(opts, option, optionarg);
6270
1
      break;
6271
    case 497: // --expr-depth=N
6272
        assign_expr_defaultExprDepth(opts, option, optionarg);
6273
      break;
6274
    case 498: // --type-checking
6275
        assign_expr_typeChecking(opts, option, true);
6276
      break;
6277
    case 499:// --no-type-checking
6278
        assign_expr_typeChecking(opts, option, false);
6279
      break;
6280
22
    case 500: // --fp-exp
6281
22
        assign_fp_fpExp(opts, option, true);
6282
22
      break;
6283
    case 501:// --no-fp-exp
6284
        assign_fp_fpExp(opts, option, false);
6285
      break;
6286
3
    case 502: // --fp-lazy-wb
6287
3
        assign_fp_fpLazyWb(opts, option, true);
6288
3
      break;
6289
    case 503:// --no-fp-lazy-wb
6290
        assign_fp_fpLazyWb(opts, option, false);
6291
      break;
6292
    case 504: // --copyright
6293
    opts.handler().copyright("copyright", option);
6294
      break;
6295
12
    case 505: // --dump-instantiations
6296
12
        assign_driver_dumpInstantiations(opts, option, true);
6297
12
      break;
6298
    case 506:// --no-dump-instantiations
6299
        assign_driver_dumpInstantiations(opts, option, false);
6300
      break;
6301
    case 507: // --dump-instantiations-debug
6302
        assign_driver_dumpInstantiationsDebug(opts, option, true);
6303
      break;
6304
    case 508:// --no-dump-instantiations-debug
6305
        assign_driver_dumpInstantiationsDebug(opts, option, false);
6306
      break;
6307
6
    case 509: // --dump-models
6308
6
        assign_driver_dumpModels(opts, option, true);
6309
6
      break;
6310
    case 510:// --no-dump-models
6311
        assign_driver_dumpModels(opts, option, false);
6312
      break;
6313
    case 511: // --dump-proofs
6314
        assign_driver_dumpProofs(opts, option, true);
6315
      break;
6316
    case 512:// --no-dump-proofs
6317
        assign_driver_dumpProofs(opts, option, false);
6318
      break;
6319
    case 513: // --dump-unsat-cores
6320
        assign_driver_dumpUnsatCores(opts, option, true);
6321
      break;
6322
    case 514:// --no-dump-unsat-cores
6323
        assign_driver_dumpUnsatCores(opts, option, false);
6324
      break;
6325
3
    case 515: // --dump-unsat-cores-full
6326
3
        assign_driver_dumpUnsatCoresFull(opts, option, true);
6327
3
      break;
6328
    case 516:// --no-dump-unsat-cores-full
6329
        assign_driver_dumpUnsatCoresFull(opts, option, false);
6330
      break;
6331
    case 517: // --early-exit
6332
        assign_driver_earlyExit(opts, option, true);
6333
      break;
6334
    case 518:// --no-early-exit
6335
        assign_driver_earlyExit(opts, option, false);
6336
      break;
6337
    case 519: // --force-no-limit-cpu-while-dump
6338
        assign_driver_forceNoLimitCpuWhileDump(opts, option, true);
6339
      break;
6340
    case 520:// --no-force-no-limit-cpu-while-dump
6341
        assign_driver_forceNoLimitCpuWhileDump(opts, option, false);
6342
      break;
6343
    case 'h':
6344
    case 521: // --help
6345
        assign_driver_help(opts, option, true);
6346
      break;
6347
    case 522: // --interactive
6348
        assign_driver_interactive(opts, option, true);
6349
      break;
6350
    case 523:// --no-interactive
6351
        assign_driver_interactive(opts, option, false);
6352
      break;
6353
    case 524: // --interactive-prompt
6354
        assign_driver_interactivePrompt(opts, option, true);
6355
      break;
6356
    case 525:// --no-interactive-prompt
6357
        assign_driver_interactivePrompt(opts, option, false);
6358
      break;
6359
    case 's':
6360
    case 526: // --seed=N
6361
        assign_driver_seed(opts, option, optionarg);
6362
      break;
6363
    case 527: // --segv-spin
6364
        assign_driver_segvSpin(opts, option, true);
6365
      break;
6366
    case 528:// --no-segv-spin
6367
        assign_driver_segvSpin(opts, option, false);
6368
      break;
6369
2609
    case 529: // --show-config
6370
2609
    opts.handler().showConfiguration("show-config", option);
6371
      break;
6372
    case 530: // --show-debug-tags
6373
    opts.handler().showDebugTags("show-debug-tags", option);
6374
      break;
6375
    case 531: // --show-trace-tags
6376
    opts.handler().showTraceTags("show-trace-tags", option);
6377
      break;
6378
    case 'V':
6379
    case 532: // --version
6380
        assign_driver_version(opts, option, true);
6381
      break;
6382
    case 533: // --filesystem-access
6383
        assign_parser_filesystemAccess(opts, option, true);
6384
      break;
6385
    case 534:// --no-filesystem-access
6386
        assign_parser_filesystemAccess(opts, option, false);
6387
      break;
6388
9
    case 535: // --force-logic=LOGIC
6389
9
        assign_parser_forceLogicString(opts, option, optionarg);
6390
9
      break;
6391
    case 536: // --global-declarations
6392
        assign_parser_globalDeclarations(opts, option, true);
6393
      break;
6394
    case 537:// --no-global-declarations
6395
        assign_parser_globalDeclarations(opts, option, false);
6396
      break;
6397
    case 538: // --mmap
6398
        assign_parser_memoryMap(opts, option, true);
6399
      break;
6400
    case 539:// --no-mmap
6401
        assign_parser_memoryMap(opts, option, false);
6402
      break;
6403
    case 540: // --semantic-checks
6404
        assign_parser_semanticChecks(opts, option, true);
6405
      break;
6406
    case 541:// --no-semantic-checks
6407
        assign_parser_semanticChecks(opts, option, false);
6408
      break;
6409
9
    case 542: // --strict-parsing
6410
9
        assign_parser_strictParsing(opts, option, true);
6411
9
      break;
6412
    case 543:// --no-strict-parsing
6413
        assign_parser_strictParsing(opts, option, false);
6414
      break;
6415
    case 544: // --flatten-ho-chains
6416
        assign_printer_flattenHOChains(opts, option, true);
6417
      break;
6418
    case 545:// --no-flatten-ho-chains
6419
        assign_printer_flattenHOChains(opts, option, false);
6420
      break;
6421
    case 546: // --inst-format=MODE
6422
        assign_printer_instFormatMode(opts, option, optionarg);
6423
      break;
6424
    case 547: // --model-format=MODE
6425
        assign_printer_modelFormatMode(opts, option, optionarg);
6426
      break;
6427
9
    case 548: // --print-inst-full
6428
9
        assign_printer_printInstFull(opts, option, true);
6429
9
      break;
6430
3
    case 549:// --no-print-inst-full
6431
3
        assign_printer_printInstFull(opts, option, false);
6432
3
      break;
6433
3
    case 550: // --print-inst=MODE
6434
3
        assign_printer_printInstMode(opts, option, optionarg);
6435
3
      break;
6436
2
    case 551: // --proof-eager-checking
6437
2
        assign_proof_proofEagerChecking(opts, option, true);
6438
2
      break;
6439
    case 552:// --no-proof-eager-checking
6440
        assign_proof_proofEagerChecking(opts, option, false);
6441
      break;
6442
    case 553: // --proof-format-mode=MODE
6443
        assign_proof_proofFormatMode(opts, option, optionarg);
6444
      break;
6445
    case 554: // --proof-granularity=MODE
6446
        assign_proof_proofGranularityMode(opts, option, optionarg);
6447
      break;
6448
    case 555: // --proof-pedantic=N
6449
        assign_proof_proofPedantic(opts, option, optionarg);
6450
      break;
6451
    case 556: // --proof-print-conclusion
6452
        assign_proof_proofPrintConclusion(opts, option, true);
6453
      break;
6454
    case 557:// --no-proof-print-conclusion
6455
        assign_proof_proofPrintConclusion(opts, option, false);
6456
      break;
6457
    case 558: // --minisat-dump-dimacs
6458
        assign_prop_minisatDumpDimacs(opts, option, true);
6459
      break;
6460
    case 559:// --no-minisat-dump-dimacs
6461
        assign_prop_minisatDumpDimacs(opts, option, false);
6462
      break;
6463
    case 560: // --minisat-elimination
6464
        assign_prop_minisatUseElim(opts, option, true);
6465
      break;
6466
    case 561:// --no-minisat-elimination
6467
        assign_prop_minisatUseElim(opts, option, false);
6468
      break;
6469
    case 562: // --random-freq=P
6470
    case 563: // --random-frequency
6471
        assign_prop_satRandomFreq(opts, option, optionarg);
6472
      break;
6473
    case 564: // --random-seed=S
6474
        assign_prop_satRandomSeed(opts, option, optionarg);
6475
      break;
6476
    case 565: // --refine-conflicts
6477
        assign_prop_sat_refine_conflicts(opts, option, true);
6478
      break;
6479
    case 566:// --no-refine-conflicts
6480
        assign_prop_sat_refine_conflicts(opts, option, false);
6481
      break;
6482
    case 567: // --restart-int-base=N
6483
        assign_prop_satRestartFirst(opts, option, optionarg);
6484
      break;
6485
    case 568: // --restart-int-inc=F
6486
        assign_prop_satRestartInc(opts, option, optionarg);
6487
      break;
6488
    case 569: // --ag-miniscope-quant
6489
        assign_quantifiers_aggressiveMiniscopeQuant(opts, option, true);
6490
      break;
6491
    case 570:// --no-ag-miniscope-quant
6492
        assign_quantifiers_aggressiveMiniscopeQuant(opts, option, false);
6493
      break;
6494
3
    case 571: // --cegis-sample=MODE
6495
3
        assign_quantifiers_cegisSample(opts, option, optionarg);
6496
3
      break;
6497
17
    case 572: // --cegqi
6498
17
        assign_quantifiers_cegqi(opts, option, true);
6499
17
      break;
6500
2
    case 573:// --no-cegqi
6501
2
        assign_quantifiers_cegqi(opts, option, false);
6502
2
      break;
6503
15
    case 574: // --cegqi-all
6504
15
        assign_quantifiers_cegqiAll(opts, option, true);
6505
15
      break;
6506
    case 575:// --no-cegqi-all
6507
        assign_quantifiers_cegqiAll(opts, option, false);
6508
      break;
6509
106
    case 576: // --cegqi-bv
6510
106
        assign_quantifiers_cegqiBv(opts, option, true);
6511
106
      break;
6512
    case 577:// --no-cegqi-bv
6513
        assign_quantifiers_cegqiBv(opts, option, false);
6514
      break;
6515
    case 578: // --cegqi-bv-concat-inv
6516
        assign_quantifiers_cegqiBvConcInv(opts, option, true);
6517
      break;
6518
    case 579:// --no-cegqi-bv-concat-inv
6519
        assign_quantifiers_cegqiBvConcInv(opts, option, false);
6520
      break;
6521
82
    case 580: // --cegqi-bv-ineq=MODE
6522
82
        assign_quantifiers_cegqiBvIneqMode(opts, option, optionarg);
6523
82
      break;
6524
    case 581: // --cegqi-bv-interleave-value
6525
        assign_quantifiers_cegqiBvInterleaveValue(opts, option, true);
6526
      break;
6527
    case 582:// --no-cegqi-bv-interleave-value
6528
        assign_quantifiers_cegqiBvInterleaveValue(opts, option, false);
6529
      break;
6530
    case 583: // --cegqi-bv-linear
6531
        assign_quantifiers_cegqiBvLinearize(opts, option, true);
6532
      break;
6533
    case 584:// --no-cegqi-bv-linear
6534
        assign_quantifiers_cegqiBvLinearize(opts, option, false);
6535
      break;
6536
2
    case 585: // --cegqi-bv-rm-extract
6537
2
        assign_quantifiers_cegqiBvRmExtract(opts, option, true);
6538
2
      break;
6539
    case 586:// --no-cegqi-bv-rm-extract
6540
        assign_quantifiers_cegqiBvRmExtract(opts, option, false);
6541
      break;
6542
    case 587: // --cegqi-bv-solve-nl
6543
        assign_quantifiers_cegqiBvSolveNl(opts, option, true);
6544
      break;
6545
    case 588:// --no-cegqi-bv-solve-nl
6546
        assign_quantifiers_cegqiBvSolveNl(opts, option, false);
6547
      break;
6548
5
    case 589: // --cegqi-full
6549
5
        assign_quantifiers_cegqiFullEffort(opts, option, true);
6550
5
      break;
6551
82
    case 590:// --no-cegqi-full
6552
82
        assign_quantifiers_cegqiFullEffort(opts, option, false);
6553
82
      break;
6554
    case 591: // --cegqi-innermost
6555
        assign_quantifiers_cegqiInnermost(opts, option, true);
6556
      break;
6557
    case 592:// --no-cegqi-innermost
6558
        assign_quantifiers_cegqiInnermost(opts, option, false);
6559
      break;
6560
    case 593: // --cegqi-midpoint
6561
        assign_quantifiers_cegqiMidpoint(opts, option, true);
6562
      break;
6563
    case 594:// --no-cegqi-midpoint
6564
        assign_quantifiers_cegqiMidpoint(opts, option, false);
6565
      break;
6566
    case 595: // --cegqi-min-bounds
6567
        assign_quantifiers_cegqiMinBounds(opts, option, true);
6568
      break;
6569
    case 596:// --no-cegqi-min-bounds
6570
        assign_quantifiers_cegqiMinBounds(opts, option, false);
6571
      break;
6572
    case 597: // --cegqi-model
6573
        assign_quantifiers_cegqiModel(opts, option, true);
6574
      break;
6575
    case 598:// --no-cegqi-model
6576
        assign_quantifiers_cegqiModel(opts, option, false);
6577
      break;
6578
3
    case 599: // --cegqi-multi-inst
6579
3
        assign_quantifiers_cegqiMultiInst(opts, option, true);
6580
3
      break;
6581
    case 600:// --no-cegqi-multi-inst
6582
        assign_quantifiers_cegqiMultiInst(opts, option, false);
6583
      break;
6584
7
    case 601: // --cegqi-nested-qe
6585
7
        assign_quantifiers_cegqiNestedQE(opts, option, true);
6586
7
      break;
6587
    case 602:// --no-cegqi-nested-qe
6588
        assign_quantifiers_cegqiNestedQE(opts, option, false);
6589
      break;
6590
    case 603: // --cegqi-nopt
6591
        assign_quantifiers_cegqiNopt(opts, option, true);
6592
      break;
6593
    case 604:// --no-cegqi-nopt
6594
        assign_quantifiers_cegqiNopt(opts, option, false);
6595
      break;
6596
    case 605: // --cegqi-repeat-lit
6597
        assign_quantifiers_cegqiRepeatLit(opts, option, true);
6598
      break;
6599
    case 606:// --no-cegqi-repeat-lit
6600
        assign_quantifiers_cegqiRepeatLit(opts, option, false);
6601
      break;
6602
    case 607: // --cegqi-round-up-lia
6603
        assign_quantifiers_cegqiRoundUpLowerLia(opts, option, true);
6604
      break;
6605
    case 608:// --no-cegqi-round-up-lia
6606
        assign_quantifiers_cegqiRoundUpLowerLia(opts, option, false);
6607
      break;
6608
    case 609: // --cegqi-sat
6609
        assign_quantifiers_cegqiSat(opts, option, true);
6610
      break;
6611
    case 610:// --no-cegqi-sat
6612
        assign_quantifiers_cegqiSat(opts, option, false);
6613
      break;
6614
3
    case 611: // --cegqi-use-inf-int
6615
3
        assign_quantifiers_cegqiUseInfInt(opts, option, true);
6616
3
      break;
6617
    case 612:// --no-cegqi-use-inf-int
6618
        assign_quantifiers_cegqiUseInfInt(opts, option, false);
6619
      break;
6620
3
    case 613: // --cegqi-use-inf-real
6621
3
        assign_quantifiers_cegqiUseInfReal(opts, option, true);
6622
3
      break;
6623
    case 614:// --no-cegqi-use-inf-real
6624
        assign_quantifiers_cegqiUseInfReal(opts, option, false);
6625
      break;
6626
    case 615: // --cond-var-split-agg-quant
6627
        assign_quantifiers_condVarSplitQuantAgg(opts, option, true);
6628
      break;
6629
    case 616:// --no-cond-var-split-agg-quant
6630
        assign_quantifiers_condVarSplitQuantAgg(opts, option, false);
6631
      break;
6632
    case 617: // --cond-var-split-quant
6633
        assign_quantifiers_condVarSplitQuant(opts, option, true);
6634
      break;
6635
    case 618:// --no-cond-var-split-quant
6636
        assign_quantifiers_condVarSplitQuant(opts, option, false);
6637
      break;
6638
    case 619: // --conjecture-filter-active-terms
6639
        assign_quantifiers_conjectureFilterActiveTerms(opts, option, true);
6640
      break;
6641
    case 620:// --no-conjecture-filter-active-terms
6642
        assign_quantifiers_conjectureFilterActiveTerms(opts, option, false);
6643
      break;
6644
    case 621: // --conjecture-filter-canonical
6645
        assign_quantifiers_conjectureFilterCanonical(opts, option, true);
6646
      break;
6647
    case 622:// --no-conjecture-filter-canonical
6648
        assign_quantifiers_conjectureFilterCanonical(opts, option, false);
6649
      break;
6650
    case 623: // --conjecture-filter-model
6651
        assign_quantifiers_conjectureFilterModel(opts, option, true);
6652
      break;
6653
    case 624:// --no-conjecture-filter-model
6654
        assign_quantifiers_conjectureFilterModel(opts, option, false);
6655
      break;
6656
3
    case 625: // --conjecture-gen
6657
3
        assign_quantifiers_conjectureGen(opts, option, true);
6658
3
      break;
6659
    case 626:// --no-conjecture-gen
6660
        assign_quantifiers_conjectureGen(opts, option, false);
6661
      break;
6662
    case 627: // --conjecture-gen-gt-enum=N
6663
        assign_quantifiers_conjectureGenGtEnum(opts, option, optionarg);
6664
      break;
6665
    case 628: // --conjecture-gen-max-depth=N
6666
        assign_quantifiers_conjectureGenMaxDepth(opts, option, optionarg);
6667
      break;
6668
    case 629: // --conjecture-gen-per-round=N
6669
        assign_quantifiers_conjectureGenPerRound(opts, option, optionarg);
6670
      break;
6671
    case 630: // --conjecture-gen-uee-intro
6672
        assign_quantifiers_conjectureUeeIntro(opts, option, true);
6673
      break;
6674
    case 631:// --no-conjecture-gen-uee-intro
6675
        assign_quantifiers_conjectureUeeIntro(opts, option, false);
6676
      break;
6677
    case 632: // --conjecture-no-filter
6678
        assign_quantifiers_conjectureNoFilter(opts, option, true);
6679
      break;
6680
    case 633:// --no-conjecture-no-filter
6681
        assign_quantifiers_conjectureNoFilter(opts, option, false);
6682
      break;
6683
    case 634: // --dt-stc-ind
6684
        assign_quantifiers_dtStcInduction(opts, option, true);
6685
      break;
6686
    case 635:// --no-dt-stc-ind
6687
        assign_quantifiers_dtStcInduction(opts, option, false);
6688
      break;
6689
    case 636: // --dt-var-exp-quant
6690
        assign_quantifiers_dtVarExpandQuant(opts, option, true);
6691
      break;
6692
    case 637:// --no-dt-var-exp-quant
6693
        assign_quantifiers_dtVarExpandQuant(opts, option, false);
6694
      break;
6695
    case 638: // --e-matching
6696
        assign_quantifiers_eMatching(opts, option, true);
6697
      break;
6698
    case 639:// --no-e-matching
6699
        assign_quantifiers_eMatching(opts, option, false);
6700
      break;
6701
    case 640: // --elim-taut-quant
6702
        assign_quantifiers_elimTautQuant(opts, option, true);
6703
      break;
6704
    case 641:// --no-elim-taut-quant
6705
        assign_quantifiers_elimTautQuant(opts, option, false);
6706
      break;
6707
9
    case 642: // --ext-rewrite-quant
6708
9
        assign_quantifiers_extRewriteQuant(opts, option, true);
6709
9
      break;
6710
    case 643:// --no-ext-rewrite-quant
6711
        assign_quantifiers_extRewriteQuant(opts, option, false);
6712
      break;
6713
159
    case 644: // --finite-model-find
6714
159
        assign_quantifiers_finiteModelFind(opts, option, true);
6715
159
      break;
6716
1
    case 645:// --no-finite-model-find
6717
1
        assign_quantifiers_finiteModelFind(opts, option, false);
6718
1
      break;
6719
30
    case 646: // --fmf-bound
6720
30
        assign_quantifiers_fmfBound(opts, option, true);
6721
30
      break;
6722
    case 647:// --no-fmf-bound
6723
        assign_quantifiers_fmfBound(opts, option, false);
6724
      break;
6725
6
    case 648: // --fmf-bound-int
6726
6
        assign_quantifiers_fmfBoundInt(opts, option, true);
6727
6
      break;
6728
    case 649:// --no-fmf-bound-int
6729
        assign_quantifiers_fmfBoundInt(opts, option, false);
6730
      break;
6731
3
    case 650: // --fmf-bound-lazy
6732
3
        assign_quantifiers_fmfBoundLazy(opts, option, true);
6733
3
      break;
6734
    case 651:// --no-fmf-bound-lazy
6735
        assign_quantifiers_fmfBoundLazy(opts, option, false);
6736
      break;
6737
    case 652: // --fmf-fmc-simple
6738
        assign_quantifiers_fmfFmcSimple(opts, option, true);
6739
      break;
6740
    case 653:// --no-fmf-fmc-simple
6741
        assign_quantifiers_fmfFmcSimple(opts, option, false);
6742
      break;
6743
    case 654: // --fmf-fresh-dc
6744
        assign_quantifiers_fmfFreshDistConst(opts, option, true);
6745
      break;
6746
    case 655:// --no-fmf-fresh-dc
6747
        assign_quantifiers_fmfFreshDistConst(opts, option, false);
6748
      break;
6749
37
    case 656: // --fmf-fun
6750
37
        assign_quantifiers_fmfFunWellDefined(opts, option, true);
6751
37
      break;
6752
    case 657:// --no-fmf-fun
6753
        assign_quantifiers_fmfFunWellDefined(opts, option, false);
6754
      break;
6755
10
    case 658: // --fmf-fun-rlv
6756
10
        assign_quantifiers_fmfFunWellDefinedRelevant(opts, option, true);
6757
10
      break;
6758
    case 659:// --no-fmf-fun-rlv
6759
        assign_quantifiers_fmfFunWellDefinedRelevant(opts, option, false);
6760
      break;
6761
7
    case 660: // --fmf-inst-engine
6762
7
        assign_quantifiers_fmfInstEngine(opts, option, true);
6763
7
      break;
6764
    case 661:// --no-fmf-inst-engine
6765
        assign_quantifiers_fmfInstEngine(opts, option, false);
6766
      break;
6767
    case 662: // --fmf-type-completion-thresh=N
6768
        assign_quantifiers_fmfTypeCompletionThresh(opts, option, optionarg);
6769
      break;
6770
    case 663: // --fs-interleave
6771
        assign_quantifiers_fullSaturateInterleave(opts, option, true);
6772
      break;
6773
    case 664:// --no-fs-interleave
6774
        assign_quantifiers_fullSaturateInterleave(opts, option, false);
6775
      break;
6776
3
    case 665: // --fs-stratify
6777
3
        assign_quantifiers_fullSaturateStratify(opts, option, true);
6778
3
      break;
6779
    case 666:// --no-fs-stratify
6780
        assign_quantifiers_fullSaturateStratify(opts, option, false);
6781
      break;
6782
    case 667: // --fs-sum
6783
        assign_quantifiers_fullSaturateSum(opts, option, true);
6784
      break;
6785
    case 668:// --no-fs-sum
6786
        assign_quantifiers_fullSaturateSum(opts, option, false);
6787
      break;
6788
76
    case 669: // --full-saturate-quant
6789
76
        assign_quantifiers_fullSaturateQuant(opts, option, true);
6790
76
      break;
6791
    case 670:// --no-full-saturate-quant
6792
        assign_quantifiers_fullSaturateQuant(opts, option, false);
6793
      break;
6794
3
    case 671: // --full-saturate-quant-limit=N
6795
3
        assign_quantifiers_fullSaturateLimit(opts, option, optionarg);
6796
3
      break;
6797
    case 672: // --full-saturate-quant-rd
6798
        assign_quantifiers_fullSaturateQuantRd(opts, option, true);
6799
      break;
6800
    case 673:// --no-full-saturate-quant-rd
6801
        assign_quantifiers_fullSaturateQuantRd(opts, option, false);
6802
      break;
6803
6
    case 674: // --global-negate
6804
6
        assign_quantifiers_globalNegate(opts, option, true);
6805
6
      break;
6806
    case 675:// --no-global-negate
6807
        assign_quantifiers_globalNegate(opts, option, false);
6808
      break;
6809
8
    case 676: // --ho-elim
6810
8
        assign_quantifiers_hoElim(opts, option, true);
6811
8
      break;
6812
    case 677:// --no-ho-elim
6813
        assign_quantifiers_hoElim(opts, option, false);
6814
      break;
6815
1
    case 678: // --ho-elim-store-ax
6816
1
        assign_quantifiers_hoElimStoreAx(opts, option, true);
6817
1
      break;
6818
    case 679:// --no-ho-elim-store-ax
6819
        assign_quantifiers_hoElimStoreAx(opts, option, false);
6820
      break;
6821
    case 680: // --ho-matching
6822
        assign_quantifiers_hoMatching(opts, option, true);
6823
      break;
6824
    case 681:// --no-ho-matching
6825
        assign_quantifiers_hoMatching(opts, option, false);
6826
      break;
6827
    case 682: // --ho-matching-var-priority
6828
        assign_quantifiers_hoMatchingVarArgPriority(opts, option, true);
6829
      break;
6830
    case 683:// --no-ho-matching-var-priority
6831
        assign_quantifiers_hoMatchingVarArgPriority(opts, option, false);
6832
      break;
6833
    case 684: // --ho-merge-term-db
6834
        assign_quantifiers_hoMergeTermDb(opts, option, true);
6835
      break;
6836
    case 685:// --no-ho-merge-term-db
6837
        assign_quantifiers_hoMergeTermDb(opts, option, false);
6838
      break;
6839
    case 686: // --increment-triggers
6840
        assign_quantifiers_incrementTriggers(opts, option, true);
6841
      break;
6842
    case 687:// --no-increment-triggers
6843
        assign_quantifiers_incrementTriggers(opts, option, false);
6844
      break;
6845
    case 688: // --inst-level-input-only
6846
        assign_quantifiers_instLevelInputOnly(opts, option, true);
6847
      break;
6848
    case 689:// --no-inst-level-input-only
6849
        assign_quantifiers_instLevelInputOnly(opts, option, false);
6850
      break;
6851
3
    case 690: // --inst-max-level=N
6852
3
        assign_quantifiers_instMaxLevel(opts, option, optionarg);
6853
3
      break;
6854
    case 691: // --inst-max-rounds=N
6855
        assign_quantifiers_instMaxRounds(opts, option, optionarg);
6856
      break;
6857
    case 692: // --inst-no-entail
6858
        assign_quantifiers_instNoEntail(opts, option, true);
6859
      break;
6860
    case 693:// --no-inst-no-entail
6861
        assign_quantifiers_instNoEntail(opts, option, false);
6862
      break;
6863
    case 694: // --inst-when-phase=N
6864
        assign_quantifiers_instWhenPhase(opts, option, optionarg);
6865
      break;
6866
    case 695: // --inst-when-strict-interleave
6867
        assign_quantifiers_instWhenStrictInterleave(opts, option, true);
6868
      break;
6869
    case 696:// --no-inst-when-strict-interleave
6870
        assign_quantifiers_instWhenStrictInterleave(opts, option, false);
6871
      break;
6872
    case 697: // --inst-when-tc-first
6873
        assign_quantifiers_instWhenTcFirst(opts, option, true);
6874
      break;
6875
    case 698:// --no-inst-when-tc-first
6876
        assign_quantifiers_instWhenTcFirst(opts, option, false);
6877
      break;
6878
3
    case 699: // --inst-when=MODE
6879
3
        assign_quantifiers_instWhenMode(opts, option, optionarg);
6880
3
      break;
6881
3
    case 700: // --int-wf-ind
6882
3
        assign_quantifiers_intWfInduction(opts, option, true);
6883
3
      break;
6884
    case 701:// --no-int-wf-ind
6885
        assign_quantifiers_intWfInduction(opts, option, false);
6886
      break;
6887
    case 702: // --ite-dtt-split-quant
6888
        assign_quantifiers_iteDtTesterSplitQuant(opts, option, true);
6889
      break;
6890
    case 703:// --no-ite-dtt-split-quant
6891
        assign_quantifiers_iteDtTesterSplitQuant(opts, option, false);
6892
      break;
6893
    case 704: // --ite-lift-quant=MODE
6894
        assign_quantifiers_iteLiftQuant(opts, option, optionarg);
6895
      break;
6896
    case 705: // --literal-matching=MODE
6897
        assign_quantifiers_literalMatchMode(opts, option, optionarg);
6898
      break;
6899
17
    case 706: // --macros-quant
6900
17
        assign_quantifiers_macrosQuant(opts, option, true);
6901
17
      break;
6902
    case 707:// --no-macros-quant
6903
        assign_quantifiers_macrosQuant(opts, option, false);
6904
      break;
6905
2
    case 708: // --macros-quant-mode=MODE
6906
2
        assign_quantifiers_macrosQuantMode(opts, option, optionarg);
6907
2
      break;
6908
    case 709: // --mbqi-interleave
6909
        assign_quantifiers_mbqiInterleave(opts, option, true);
6910
      break;
6911
    case 710:// --no-mbqi-interleave
6912
        assign_quantifiers_mbqiInterleave(opts, option, false);
6913
      break;
6914
    case 711: // --mbqi-one-inst-per-round
6915
        assign_quantifiers_fmfOneInstPerRound(opts, option, true);
6916
      break;
6917
    case 712:// --no-mbqi-one-inst-per-round
6918
        assign_quantifiers_fmfOneInstPerRound(opts, option, false);
6919
      break;
6920
    case 713: // --mbqi=MODE
6921
        assign_quantifiers_mbqiMode(opts, option, optionarg);
6922
      break;
6923
    case 714: // --miniscope-quant
6924
        assign_quantifiers_miniscopeQuant(opts, option, true);
6925
      break;
6926
    case 715:// --no-miniscope-quant
6927
        assign_quantifiers_miniscopeQuant(opts, option, false);
6928
      break;
6929
    case 716: // --miniscope-quant-fv
6930
        assign_quantifiers_miniscopeQuantFreeVar(opts, option, true);
6931
      break;
6932
    case 717:// --no-miniscope-quant-fv
6933
        assign_quantifiers_miniscopeQuantFreeVar(opts, option, false);
6934
      break;
6935
3
    case 718: // --multi-trigger-cache
6936
3
        assign_quantifiers_multiTriggerCache(opts, option, true);
6937
3
      break;
6938
    case 719:// --no-multi-trigger-cache
6939
        assign_quantifiers_multiTriggerCache(opts, option, false);
6940
      break;
6941
    case 720: // --multi-trigger-linear
6942
        assign_quantifiers_multiTriggerLinear(opts, option, true);
6943
      break;
6944
    case 721:// --no-multi-trigger-linear
6945
        assign_quantifiers_multiTriggerLinear(opts, option, false);
6946
      break;
6947
    case 722: // --multi-trigger-priority
6948
        assign_quantifiers_multiTriggerPriority(opts, option, true);
6949
      break;
6950
    case 723:// --no-multi-trigger-priority
6951
        assign_quantifiers_multiTriggerPriority(opts, option, false);
6952
      break;
6953
    case 724: // --multi-trigger-when-single
6954
        assign_quantifiers_multiTriggerWhenSingle(opts, option, true);
6955
      break;
6956
    case 725:// --no-multi-trigger-when-single
6957
        assign_quantifiers_multiTriggerWhenSingle(opts, option, false);
6958
      break;
6959
3
    case 726: // --partial-triggers
6960
3
        assign_quantifiers_partialTriggers(opts, option, true);
6961
3
      break;
6962
    case 727:// --no-partial-triggers
6963
        assign_quantifiers_partialTriggers(opts, option, false);
6964
      break;
6965
3
    case 728: // --pool-inst
6966
3
        assign_quantifiers_poolInst(opts, option, true);
6967
3
      break;
6968
    case 729:// --no-pool-inst
6969
        assign_quantifiers_poolInst(opts, option, false);
6970
      break;
6971
    case 730: // --pre-skolem-quant
6972
        assign_quantifiers_preSkolemQuant(opts, option, true);
6973
      break;
6974
    case 731:// --no-pre-skolem-quant
6975
        assign_quantifiers_preSkolemQuant(opts, option, false);
6976
      break;
6977
    case 732: // --pre-skolem-quant-agg
6978
        assign_quantifiers_preSkolemQuantAgg(opts, option, true);
6979
      break;
6980
    case 733:// --no-pre-skolem-quant-agg
6981
        assign_quantifiers_preSkolemQuantAgg(opts, option, false);
6982
      break;
6983
    case 734: // --pre-skolem-quant-nested
6984
        assign_quantifiers_preSkolemQuantNested(opts, option, true);
6985
      break;
6986
    case 735:// --no-pre-skolem-quant-nested
6987
        assign_quantifiers_preSkolemQuantNested(opts, option, false);
6988
      break;
6989
    case 736: // --prenex-quant-user
6990
        assign_quantifiers_prenexQuantUser(opts, option, true);
6991
      break;
6992
    case 737:// --no-prenex-quant-user
6993
        assign_quantifiers_prenexQuantUser(opts, option, false);
6994
      break;
6995
    case 738: // --prenex-quant=MODE
6996
        assign_quantifiers_prenexQuant(opts, option, optionarg);
6997
      break;
6998
3
    case 739: // --purify-triggers
6999
3
        assign_quantifiers_purifyTriggers(opts, option, true);
7000
3
      break;
7001
    case 740:// --no-purify-triggers
7002
        assign_quantifiers_purifyTriggers(opts, option, false);
7003
      break;
7004
    case 741: // --qcf-all-conflict
7005
        assign_quantifiers_qcfAllConflict(opts, option, true);
7006
      break;
7007
    case 742:// --no-qcf-all-conflict
7008
        assign_quantifiers_qcfAllConflict(opts, option, false);
7009
      break;
7010
    case 743: // --qcf-eager-check-rd
7011
        assign_quantifiers_qcfEagerCheckRd(opts, option, true);
7012
      break;
7013
    case 744:// --no-qcf-eager-check-rd
7014
        assign_quantifiers_qcfEagerCheckRd(opts, option, false);
7015
      break;
7016
    case 745: // --qcf-eager-test
7017
        assign_quantifiers_qcfEagerTest(opts, option, true);
7018
      break;
7019
    case 746:// --no-qcf-eager-test
7020
        assign_quantifiers_qcfEagerTest(opts, option, false);
7021
      break;
7022
    case 747: // --qcf-nested-conflict
7023
        assign_quantifiers_qcfNestedConflict(opts, option, true);
7024
      break;
7025
    case 748:// --no-qcf-nested-conflict
7026
        assign_quantifiers_qcfNestedConflict(opts, option, false);
7027
      break;
7028
    case 749: // --qcf-skip-rd
7029
        assign_quantifiers_qcfSkipRd(opts, option, true);
7030
      break;
7031
    case 750:// --no-qcf-skip-rd
7032
        assign_quantifiers_qcfSkipRd(opts, option, false);
7033
      break;
7034
6
    case 751: // --qcf-tconstraint
7035
6
        assign_quantifiers_qcfTConstraint(opts, option, true);
7036
6
      break;
7037
    case 752:// --no-qcf-tconstraint
7038
        assign_quantifiers_qcfTConstraint(opts, option, false);
7039
      break;
7040
    case 753: // --qcf-vo-exp
7041
        assign_quantifiers_qcfVoExp(opts, option, true);
7042
      break;
7043
    case 754:// --no-qcf-vo-exp
7044
        assign_quantifiers_qcfVoExp(opts, option, false);
7045
      break;
7046
    case 755: // --quant-alpha-equiv
7047
        assign_quantifiers_quantAlphaEquiv(opts, option, true);
7048
      break;
7049
    case 756:// --no-quant-alpha-equiv
7050
        assign_quantifiers_quantAlphaEquiv(opts, option, false);
7051
      break;
7052
    case 757: // --quant-cf
7053
        assign_quantifiers_quantConflictFind(opts, option, true);
7054
      break;
7055
    case 758:// --no-quant-cf
7056
        assign_quantifiers_quantConflictFind(opts, option, false);
7057
      break;
7058
    case 759: // --quant-cf-mode=MODE
7059
        assign_quantifiers_qcfMode(opts, option, optionarg);
7060
      break;
7061
    case 760: // --quant-cf-when=MODE
7062
        assign_quantifiers_qcfWhenMode(opts, option, optionarg);
7063
      break;
7064
    case 761: // --quant-dsplit-mode=MODE
7065
        assign_quantifiers_quantDynamicSplit(opts, option, optionarg);
7066
      break;
7067
    case 762: // --quant-fun-wd
7068
        assign_quantifiers_quantFunWellDefined(opts, option, true);
7069
      break;
7070
    case 763:// --no-quant-fun-wd
7071
        assign_quantifiers_quantFunWellDefined(opts, option, false);
7072
      break;
7073
6
    case 764: // --quant-ind
7074
6
        assign_quantifiers_quantInduction(opts, option, true);
7075
6
      break;
7076
    case 765:// --no-quant-ind
7077
        assign_quantifiers_quantInduction(opts, option, false);
7078
      break;
7079
    case 766: // --quant-rep-mode=MODE
7080
        assign_quantifiers_quantRepMode(opts, option, optionarg);
7081
      break;
7082
    case 767: // --quant-split
7083
        assign_quantifiers_quantSplit(opts, option, true);
7084
      break;
7085
    case 768:// --no-quant-split
7086
        assign_quantifiers_quantSplit(opts, option, false);
7087
      break;
7088
    case 769: // --register-quant-body-terms
7089
        assign_quantifiers_registerQuantBodyTerms(opts, option, true);
7090
      break;
7091
    case 770:// --no-register-quant-body-terms
7092
        assign_quantifiers_registerQuantBodyTerms(opts, option, false);
7093
      break;
7094
12
    case 771: // --relational-triggers
7095
12
        assign_quantifiers_relationalTriggers(opts, option, true);
7096
12
      break;
7097
3
    case 772:// --no-relational-triggers
7098
3
        assign_quantifiers_relationalTriggers(opts, option, false);
7099
3
      break;
7100
3
    case 773: // --relevant-triggers
7101
3
        assign_quantifiers_relevantTriggers(opts, option, true);
7102
3
      break;
7103
    case 774:// --no-relevant-triggers
7104
        assign_quantifiers_relevantTriggers(opts, option, false);
7105
      break;
7106
    case 775: // --sygus
7107
        assign_quantifiers_sygus(opts, option, true);
7108
      break;
7109
    case 776:// --no-sygus
7110
        assign_quantifiers_sygus(opts, option, false);
7111
      break;
7112
    case 777: // --sygus-active-gen-cfactor=N
7113
        assign_quantifiers_sygusActiveGenEnumConsts(opts, option, optionarg);
7114
      break;
7115
13
    case 778: // --sygus-active-gen=MODE
7116
13
        assign_quantifiers_sygusActiveGenMode(opts, option, optionarg);
7117
13
      break;
7118
1
    case 779: // --sygus-add-const-grammar
7119
1
        assign_quantifiers_sygusAddConstGrammar(opts, option, true);
7120
1
      break;
7121
1
    case 780:// --no-sygus-add-const-grammar
7122
1
        assign_quantifiers_sygusAddConstGrammar(opts, option, false);
7123
1
      break;
7124
3
    case 781: // --sygus-arg-relevant
7125
3
        assign_quantifiers_sygusArgRelevant(opts, option, true);
7126
3
      break;
7127
    case 782:// --no-sygus-arg-relevant
7128
        assign_quantifiers_sygusArgRelevant(opts, option, false);
7129
      break;
7130
    case 783: // --sygus-auto-unfold
7131
        assign_quantifiers_sygusInvAutoUnfold(opts, option, true);
7132
      break;
7133
    case 784:// --no-sygus-auto-unfold
7134
        assign_quantifiers_sygusInvAutoUnfold(opts, option, false);
7135
      break;
7136
1
    case 785: // --sygus-bool-ite-return-const
7137
1
        assign_quantifiers_sygusBoolIteReturnConst(opts, option, true);
7138
1
      break;
7139
    case 786:// --no-sygus-bool-ite-return-const
7140
        assign_quantifiers_sygusBoolIteReturnConst(opts, option, false);
7141
      break;
7142
5
    case 787: // --sygus-core-connective
7143
5
        assign_quantifiers_sygusCoreConnective(opts, option, true);
7144
5
      break;
7145
    case 788:// --no-sygus-core-connective
7146
        assign_quantifiers_sygusCoreConnective(opts, option, false);
7147
      break;
7148
    case 789: // --sygus-crepair-abort
7149
        assign_quantifiers_sygusConstRepairAbort(opts, option, true);
7150
      break;
7151
    case 790:// --no-sygus-crepair-abort
7152
        assign_quantifiers_sygusConstRepairAbort(opts, option, false);
7153
      break;
7154
    case 791: // --sygus-eval-opt
7155
        assign_quantifiers_sygusEvalOpt(opts, option, true);
7156
      break;
7157
    case 792:// --no-sygus-eval-opt
7158
        assign_quantifiers_sygusEvalOpt(opts, option, false);
7159
      break;
7160
    case 793: // --sygus-eval-unfold
7161
        assign_quantifiers_sygusEvalUnfold(opts, option, true);
7162
      break;
7163
    case 794:// --no-sygus-eval-unfold
7164
        assign_quantifiers_sygusEvalUnfold(opts, option, false);
7165
      break;
7166
    case 795: // --sygus-eval-unfold-bool
7167
        assign_quantifiers_sygusEvalUnfoldBool(opts, option, true);
7168
      break;
7169
    case 796:// --no-sygus-eval-unfold-bool
7170
        assign_quantifiers_sygusEvalUnfoldBool(opts, option, false);
7171
      break;
7172
    case 797: // --sygus-expr-miner-check-timeout=N
7173
        assign_quantifiers_sygusExprMinerCheckTimeout(opts, option, optionarg);
7174
      break;
7175
    case 798: // --sygus-ext-rew
7176
        assign_quantifiers_sygusExtRew(opts, option, true);
7177
      break;
7178
    case 799:// --no-sygus-ext-rew
7179
        assign_quantifiers_sygusExtRew(opts, option, false);
7180
      break;
7181
    case 800: // --sygus-filter-sol-rev
7182
        assign_quantifiers_sygusFilterSolRevSubsume(opts, option, true);
7183
      break;
7184
    case 801:// --no-sygus-filter-sol-rev
7185
        assign_quantifiers_sygusFilterSolRevSubsume(opts, option, false);
7186
      break;
7187
    case 802: // --sygus-filter-sol=MODE
7188
        assign_quantifiers_sygusFilterSolMode(opts, option, optionarg);
7189
      break;
7190
6
    case 803: // --sygus-grammar-cons=MODE
7191
6
        assign_quantifiers_sygusGrammarConsMode(opts, option, optionarg);
7192
6
      break;
7193
    case 804: // --sygus-grammar-norm
7194
        assign_quantifiers_sygusGrammarNorm(opts, option, true);
7195
      break;
7196
    case 805:// --no-sygus-grammar-norm
7197
        assign_quantifiers_sygusGrammarNorm(opts, option, false);
7198
      break;
7199
46
    case 806: // --sygus-inference
7200
46
        assign_quantifiers_sygusInference(opts, option, true);
7201
46
      break;
7202
    case 807:// --no-sygus-inference
7203
        assign_quantifiers_sygusInference(opts, option, false);
7204
      break;
7205
14
    case 808: // --sygus-inst
7206
14
        assign_quantifiers_sygusInst(opts, option, true);
7207
14
      break;
7208
    case 809:// --no-sygus-inst
7209
        assign_quantifiers_sygusInst(opts, option, false);
7210
      break;
7211
    case 810: // --sygus-inst-mode=MODE
7212
        assign_quantifiers_sygusInstMode(opts, option, optionarg);
7213
      break;
7214
    case 811: // --sygus-inst-scope=MODE
7215
        assign_quantifiers_sygusInstScope(opts, option, optionarg);
7216
      break;
7217
    case 812: // --sygus-inst-term-sel=MODE
7218
        assign_quantifiers_sygusInstTermSel(opts, option, optionarg);
7219
      break;
7220
    case 813: // --sygus-inv-templ-when-sg
7221
        assign_quantifiers_sygusInvTemplWhenSyntax(opts, option, true);
7222
      break;
7223
    case 814:// --no-sygus-inv-templ-when-sg
7224
        assign_quantifiers_sygusInvTemplWhenSyntax(opts, option, false);
7225
      break;
7226
3
    case 815: // --sygus-inv-templ=MODE
7227
3
        assign_quantifiers_sygusInvTemplMode(opts, option, optionarg);
7228
3
      break;
7229
    case 816: // --sygus-min-grammar
7230
        assign_quantifiers_sygusMinGrammar(opts, option, true);
7231
      break;
7232
    case 817:// --no-sygus-min-grammar
7233
        assign_quantifiers_sygusMinGrammar(opts, option, false);
7234
      break;
7235
    case 818: // --sygus-pbe
7236
        assign_quantifiers_sygusUnifPbe(opts, option, true);
7237
      break;
7238
6
    case 819:// --no-sygus-pbe
7239
6
        assign_quantifiers_sygusUnifPbe(opts, option, false);
7240
6
      break;
7241
    case 820: // --sygus-pbe-multi-fair
7242
        assign_quantifiers_sygusPbeMultiFair(opts, option, true);
7243
      break;
7244
    case 821:// --no-sygus-pbe-multi-fair
7245
        assign_quantifiers_sygusPbeMultiFair(opts, option, false);
7246
      break;
7247
    case 822: // --sygus-pbe-multi-fair-diff=N
7248
        assign_quantifiers_sygusPbeMultiFairDiff(opts, option, optionarg);
7249
      break;
7250
4
    case 823: // --sygus-qe-preproc
7251
4
        assign_quantifiers_sygusQePreproc(opts, option, true);
7252
4
      break;
7253
    case 824:// --no-sygus-qe-preproc
7254
        assign_quantifiers_sygusQePreproc(opts, option, false);
7255
      break;
7256
    case 825: // --sygus-query-gen
7257
        assign_quantifiers_sygusQueryGen(opts, option, true);
7258
      break;
7259
    case 826:// --no-sygus-query-gen
7260
        assign_quantifiers_sygusQueryGen(opts, option, false);
7261
      break;
7262
    case 827: // --sygus-query-gen-check
7263
        assign_quantifiers_sygusQueryGenCheck(opts, option, true);
7264
      break;
7265
    case 828:// --no-sygus-query-gen-check
7266
        assign_quantifiers_sygusQueryGenCheck(opts, option, false);
7267
      break;
7268
    case 829: // --sygus-query-gen-dump-files=MODE
7269
        assign_quantifiers_sygusQueryGenDumpFiles(opts, option, optionarg);
7270
      break;
7271
    case 830: // --sygus-query-gen-thresh=N
7272
        assign_quantifiers_sygusQueryGenThresh(opts, option, optionarg);
7273
      break;
7274
1
    case 831: // --sygus-rec-fun
7275
1
        assign_quantifiers_sygusRecFun(opts, option, true);
7276
1
      break;
7277
    case 832:// --no-sygus-rec-fun
7278
        assign_quantifiers_sygusRecFun(opts, option, false);
7279
      break;
7280
    case 833: // --sygus-rec-fun-eval-limit=N
7281
        assign_quantifiers_sygusRecFunEvalLimit(opts, option, optionarg);
7282
      break;
7283
5
    case 834: // --sygus-repair-const
7284
5
        assign_quantifiers_sygusRepairConst(opts, option, true);
7285
5
      break;
7286
3
    case 835:// --no-sygus-repair-const
7287
3
        assign_quantifiers_sygusRepairConst(opts, option, false);
7288
3
      break;
7289
    case 836: // --sygus-repair-const-timeout=N
7290
        assign_quantifiers_sygusRepairConstTimeout(opts, option, optionarg);
7291
      break;
7292
6
    case 837: // --sygus-rr
7293
6
        assign_quantifiers_sygusRew(opts, option, true);
7294
6
      break;
7295
    case 838:// --no-sygus-rr
7296
        assign_quantifiers_sygusRew(opts, option, false);
7297
      break;
7298
1
    case 839: // --sygus-rr-synth
7299
1
        assign_quantifiers_sygusRewSynth(opts, option, true);
7300
1
      break;
7301
    case 840:// --no-sygus-rr-synth
7302
        assign_quantifiers_sygusRewSynth(opts, option, false);
7303
      break;
7304
    case 841: // --sygus-rr-synth-accel
7305
        assign_quantifiers_sygusRewSynthAccel(opts, option, true);
7306
      break;
7307
    case 842:// --no-sygus-rr-synth-accel
7308
        assign_quantifiers_sygusRewSynthAccel(opts, option, false);
7309
      break;
7310
3
    case 843: // --sygus-rr-synth-check
7311
3
        assign_quantifiers_sygusRewSynthCheck(opts, option, true);
7312
3
      break;
7313
    case 844:// --no-sygus-rr-synth-check
7314
        assign_quantifiers_sygusRewSynthCheck(opts, option, false);
7315
      break;
7316
    case 845: // --sygus-rr-synth-filter-cong
7317
        assign_quantifiers_sygusRewSynthFilterCong(opts, option, true);
7318
      break;
7319
    case 846:// --no-sygus-rr-synth-filter-cong
7320
        assign_quantifiers_sygusRewSynthFilterCong(opts, option, false);
7321
      break;
7322
    case 847: // --sygus-rr-synth-filter-match
7323
        assign_quantifiers_sygusRewSynthFilterMatch(opts, option, true);
7324
      break;
7325
    case 848:// --no-sygus-rr-synth-filter-match
7326
        assign_quantifiers_sygusRewSynthFilterMatch(opts, option, false);
7327
      break;
7328
    case 849: // --sygus-rr-synth-filter-nl
7329
        assign_quantifiers_sygusRewSynthFilterNonLinear(opts, option, true);
7330
      break;
7331
    case 850:// --no-sygus-rr-synth-filter-nl
7332
        assign_quantifiers_sygusRewSynthFilterNonLinear(opts, option, false);
7333
      break;
7334
    case 851: // --sygus-rr-synth-filter-order
7335
        assign_quantifiers_sygusRewSynthFilterOrder(opts, option, true);
7336
      break;
7337
    case 852:// --no-sygus-rr-synth-filter-order
7338
        assign_quantifiers_sygusRewSynthFilterOrder(opts, option, false);
7339
      break;
7340
    case 853: // --sygus-rr-synth-input
7341
        assign_quantifiers_sygusRewSynthInput(opts, option, true);
7342
      break;
7343
    case 854:// --no-sygus-rr-synth-input
7344
        assign_quantifiers_sygusRewSynthInput(opts, option, false);
7345
      break;
7346
    case 855: // --sygus-rr-synth-input-nvars=N
7347
        assign_quantifiers_sygusRewSynthInputNVars(opts, option, optionarg);
7348
      break;
7349
    case 856: // --sygus-rr-synth-input-use-bool
7350
        assign_quantifiers_sygusRewSynthInputUseBool(opts, option, true);
7351
      break;
7352
    case 857:// --no-sygus-rr-synth-input-use-bool
7353
        assign_quantifiers_sygusRewSynthInputUseBool(opts, option, false);
7354
      break;
7355
    case 858: // --sygus-rr-synth-rec
7356
        assign_quantifiers_sygusRewSynthRec(opts, option, true);
7357
      break;
7358
    case 859:// --no-sygus-rr-synth-rec
7359
        assign_quantifiers_sygusRewSynthRec(opts, option, false);
7360
      break;
7361
    case 860: // --sygus-rr-verify
7362
        assign_quantifiers_sygusRewVerify(opts, option, true);
7363
      break;
7364
    case 861:// --no-sygus-rr-verify
7365
        assign_quantifiers_sygusRewVerify(opts, option, false);
7366
      break;
7367
7
    case 862: // --sygus-rr-verify-abort
7368
7
        assign_quantifiers_sygusRewVerifyAbort(opts, option, true);
7369
7
      break;
7370
    case 863:// --no-sygus-rr-verify-abort
7371
        assign_quantifiers_sygusRewVerifyAbort(opts, option, false);
7372
      break;
7373
    case 864: // --sygus-sample-fp-uniform
7374
        assign_quantifiers_sygusSampleFpUniform(opts, option, true);
7375
      break;
7376
    case 865:// --no-sygus-sample-fp-uniform
7377
        assign_quantifiers_sygusSampleFpUniform(opts, option, false);
7378
      break;
7379
    case 866: // --sygus-sample-grammar
7380
        assign_quantifiers_sygusSampleGrammar(opts, option, true);
7381
      break;
7382
    case 867:// --no-sygus-sample-grammar
7383
        assign_quantifiers_sygusSampleGrammar(opts, option, false);
7384
      break;
7385
7
    case 868: // --sygus-samples=N
7386
7
        assign_quantifiers_sygusSamples(opts, option, optionarg);
7387
7
      break;
7388
    case 869: // --sygus-si-abort
7389
        assign_quantifiers_cegqiSingleInvAbort(opts, option, true);
7390
      break;
7391
    case 870:// --no-sygus-si-abort
7392
        assign_quantifiers_cegqiSingleInvAbort(opts, option, false);
7393
      break;
7394
    case 871: // --sygus-si-partial
7395
        assign_quantifiers_cegqiSingleInvPartial(opts, option, true);
7396
      break;
7397
    case 872:// --no-sygus-si-partial
7398
        assign_quantifiers_cegqiSingleInvPartial(opts, option, false);
7399
      break;
7400
1
    case 873: // --sygus-si-rcons-limit=N
7401
1
        assign_quantifiers_cegqiSingleInvReconstructLimit(opts, option, optionarg);
7402
1
      break;
7403
    case 874: // --sygus-si-rcons=MODE
7404
        assign_quantifiers_cegqiSingleInvReconstruct(opts, option, optionarg);
7405
      break;
7406
    case 875: // --sygus-si-reconstruct-const
7407
        assign_quantifiers_cegqiSingleInvReconstructConst(opts, option, true);
7408
      break;
7409
    case 876:// --no-sygus-si-reconstruct-const
7410
        assign_quantifiers_cegqiSingleInvReconstructConst(opts, option, false);
7411
      break;
7412
47
    case 877: // --sygus-si=MODE
7413
47
        assign_quantifiers_cegqiSingleInvMode(opts, option, optionarg);
7414
47
      break;
7415
4
    case 878: // --sygus-stream
7416
4
        assign_quantifiers_sygusStream(opts, option, true);
7417
4
      break;
7418
    case 879:// --no-sygus-stream
7419
        assign_quantifiers_sygusStream(opts, option, false);
7420
      break;
7421
    case 880: // --sygus-templ-embed-grammar
7422
        assign_quantifiers_sygusTemplEmbedGrammar(opts, option, true);
7423
      break;
7424
    case 881:// --no-sygus-templ-embed-grammar
7425
        assign_quantifiers_sygusTemplEmbedGrammar(opts, option, false);
7426
      break;
7427
    case 882: // --sygus-unif-cond-independent-no-repeat-sol
7428
        assign_quantifiers_sygusUnifCondIndNoRepeatSol(opts, option, true);
7429
      break;
7430
    case 883:// --no-sygus-unif-cond-independent-no-repeat-sol
7431
        assign_quantifiers_sygusUnifCondIndNoRepeatSol(opts, option, false);
7432
      break;
7433
9
    case 884: // --sygus-unif-pi=MODE
7434
9
        assign_quantifiers_sygusUnifPi(opts, option, optionarg);
7435
9
      break;
7436
    case 885: // --sygus-unif-shuffle-cond
7437
        assign_quantifiers_sygusUnifShuffleCond(opts, option, true);
7438
      break;
7439
    case 886:// --no-sygus-unif-shuffle-cond
7440
        assign_quantifiers_sygusUnifShuffleCond(opts, option, false);
7441
      break;
7442
    case 887: // --sygus-verify-inst-max-rounds=N
7443
        assign_quantifiers_sygusVerifyInstMaxRounds(opts, option, optionarg);
7444
      break;
7445
    case 888: // --term-db-cd
7446
        assign_quantifiers_termDbCd(opts, option, true);
7447
      break;
7448
    case 889:// --no-term-db-cd
7449
        assign_quantifiers_termDbCd(opts, option, false);
7450
      break;
7451
    case 890: // --term-db-mode=MODE
7452
        assign_quantifiers_termDbMode(opts, option, optionarg);
7453
      break;
7454
    case 891: // --trigger-active-sel=MODE
7455
        assign_quantifiers_triggerActiveSelMode(opts, option, optionarg);
7456
      break;
7457
    case 892: // --trigger-sel=MODE
7458
        assign_quantifiers_triggerSelMode(opts, option, optionarg);
7459
      break;
7460
    case 893: // --user-pat=MODE
7461
        assign_quantifiers_userPatternsQuant(opts, option, optionarg);
7462
      break;
7463
    case 894: // --var-elim-quant
7464
        assign_quantifiers_varElimQuant(opts, option, true);
7465
      break;
7466
    case 895:// --no-var-elim-quant
7467
        assign_quantifiers_varElimQuant(opts, option, false);
7468
      break;
7469
2
    case 896: // --var-ineq-elim-quant
7470
2
        assign_quantifiers_varIneqElimQuant(opts, option, true);
7471
2
      break;
7472
    case 897:// --no-var-ineq-elim-quant
7473
        assign_quantifiers_varIneqElimQuant(opts, option, false);
7474
      break;
7475
    case 898: // --sep-check-neg
7476
        assign_sep_sepCheckNeg(opts, option, true);
7477
      break;
7478
    case 899:// --no-sep-check-neg
7479
        assign_sep_sepCheckNeg(opts, option, false);
7480
      break;
7481
    case 900: // --sep-child-refine
7482
        assign_sep_sepChildRefine(opts, option, true);
7483
      break;
7484
    case 901:// --no-sep-child-refine
7485
        assign_sep_sepChildRefine(opts, option, false);
7486
      break;
7487
    case 902: // --sep-deq-c
7488
        assign_sep_sepDisequalC(opts, option, true);
7489
      break;
7490
    case 903:// --no-sep-deq-c
7491
        assign_sep_sepDisequalC(opts, option, false);
7492
      break;
7493
    case 904: // --sep-exp
7494
        assign_sep_sepExp(opts, option, true);
7495
      break;
7496
    case 905:// --no-sep-exp
7497
        assign_sep_sepExp(opts, option, false);
7498
      break;
7499
    case 906: // --sep-min-refine
7500
        assign_sep_sepMinimalRefine(opts, option, true);
7501
      break;
7502
    case 907:// --no-sep-min-refine
7503
        assign_sep_sepMinimalRefine(opts, option, false);
7504
      break;
7505
1
    case 908: // --sep-pre-skolem-emp
7506
1
        assign_sep_sepPreSkolemEmp(opts, option, true);
7507
1
      break;
7508
    case 909:// --no-sep-pre-skolem-emp
7509
        assign_sep_sepPreSkolemEmp(opts, option, false);
7510
      break;
7511
32
    case 910: // --sets-ext
7512
32
        assign_sets_setsExt(opts, option, true);
7513
32
      break;
7514
    case 911:// --no-sets-ext
7515
        assign_sets_setsExt(opts, option, false);
7516
      break;
7517
2
    case 912: // --sets-infer-as-lemmas
7518
2
        assign_sets_setsInferAsLemmas(opts, option, true);
7519
2
      break;
7520
    case 913:// --no-sets-infer-as-lemmas
7521
        assign_sets_setsInferAsLemmas(opts, option, false);
7522
      break;
7523
    case 914: // --sets-proxy-lemmas
7524
        assign_sets_setsProxyLemmas(opts, option, true);
7525
      break;
7526
    case 915:// --no-sets-proxy-lemmas
7527
        assign_sets_setsProxyLemmas(opts, option, false);
7528
      break;
7529
4
    case 916: // --abstract-values
7530
4
        assign_smt_abstractValues(opts, option, true);
7531
4
      break;
7532
    case 917:// --no-abstract-values
7533
        assign_smt_abstractValues(opts, option, false);
7534
      break;
7535
31
    case 918: // --ackermann
7536
31
        assign_smt_ackermann(opts, option, true);
7537
31
      break;
7538
    case 919:// --no-ackermann
7539
        assign_smt_ackermann(opts, option, false);
7540
      break;
7541
7
    case 920: // --block-models=MODE
7542
7
        assign_smt_blockModelsMode(opts, option, optionarg);
7543
7
      break;
7544
78
    case 921: // --bvand-integer-granularity=N
7545
78
        assign_smt_BVAndIntegerGranularity(opts, option, optionarg);
7546
78
      break;
7547
13
    case 922: // --check-abducts
7548
13
        assign_smt_checkAbducts(opts, option, true);
7549
13
      break;
7550
    case 923:// --no-check-abducts
7551
        assign_smt_checkAbducts(opts, option, false);
7552
      break;
7553
8
    case 924: // --check-interpols
7554
8
        assign_smt_checkInterpols(opts, option, true);
7555
8
      break;
7556
    case 925:// --no-check-interpols
7557
        assign_smt_checkInterpols(opts, option, false);
7558
      break;
7559
22
    case 926: // --check-models
7560
22
        assign_smt_checkModels(opts, option, true);
7561
22
      break;
7562
85
    case 927:// --no-check-models
7563
85
        assign_smt_checkModels(opts, option, false);
7564
85
      break;
7565
1148
    case 928: // --check-proofs
7566
1148
        assign_smt_checkProofs(opts, option, true);
7567
1148
      break;
7568
13
    case 929:// --no-check-proofs
7569
13
        assign_smt_checkProofs(opts, option, false);
7570
13
      break;
7571
182
    case 930: // --check-synth-sol
7572
182
        assign_smt_checkSynthSol(opts, option, true);
7573
182
      break;
7574
6
    case 931:// --no-check-synth-sol
7575
6
        assign_smt_checkSynthSol(opts, option, false);
7576
6
      break;
7577
1137
    case 932: // --check-unsat-cores
7578
1137
        assign_smt_checkUnsatCores(opts, option, true);
7579
1137
      break;
7580
40
    case 933:// --no-check-unsat-cores
7581
40
        assign_smt_checkUnsatCores(opts, option, false);
7582
40
      break;
7583
1224
    case 934: // --debug-check-models
7584
1224
        assign_smt_debugCheckModels(opts, option, true);
7585
1224
      break;
7586
    case 935:// --no-debug-check-models
7587
        assign_smt_debugCheckModels(opts, option, false);
7588
      break;
7589
    case 936: // --dump-to=FILE
7590
        assign_smt_dumpToFileName(opts, option, optionarg);
7591
      break;
7592
3
    case 937: // --dump=MODE
7593
3
        assign_smt_dumpModeString(opts, option, optionarg);
7594
2
      break;
7595
    case 938: // --early-ite-removal
7596
        assign_smt_earlyIteRemoval(opts, option, true);
7597
      break;
7598
    case 939:// --no-early-ite-removal
7599
        assign_smt_earlyIteRemoval(opts, option, false);
7600
      break;
7601
    case 940: // --expand-definitions
7602
        assign_smt_expandDefinitions(opts, option, true);
7603
      break;
7604
    case 941:// --no-expand-definitions
7605
        assign_smt_expandDefinitions(opts, option, false);
7606
      break;
7607
17
    case 942: // --ext-rew-prep
7608
17
        assign_smt_extRewPrep(opts, option, true);
7609
17
      break;
7610
    case 943:// --no-ext-rew-prep
7611
        assign_smt_extRewPrep(opts, option, false);
7612
      break;
7613
7
    case 944: // --ext-rew-prep-agg
7614
7
        assign_smt_extRewPrepAgg(opts, option, true);
7615
7
      break;
7616
    case 945:// --no-ext-rew-prep-agg
7617
        assign_smt_extRewPrepAgg(opts, option, false);
7618
      break;
7619
2
    case 946: // --foreign-theory-rewrite
7620
2
        assign_smt_foreignTheoryRewrite(opts, option, true);
7621
2
      break;
7622
    case 947:// --no-foreign-theory-rewrite
7623
        assign_smt_foreignTheoryRewrite(opts, option, false);
7624
      break;
7625
68
    case 948: // --iand-mode=mode
7626
68
        assign_smt_iandMode(opts, option, optionarg);
7627
68
      break;
7628
    case 949: // --interactive-mode
7629
        assign_smt_interactiveMode(opts, option, true);
7630
      break;
7631
    case 950:// --no-interactive-mode
7632
        assign_smt_interactiveMode(opts, option, false);
7633
      break;
7634
    case 951: // --ite-simp
7635
        assign_smt_doITESimp(opts, option, true);
7636
      break;
7637
    case 952:// --no-ite-simp
7638
        assign_smt_doITESimp(opts, option, false);
7639
      break;
7640
2
    case 953: // --learned-rewrite
7641
2
        assign_smt_learnedRewrite(opts, option, true);
7642
2
      break;
7643
    case 954:// --no-learned-rewrite
7644
        assign_smt_learnedRewrite(opts, option, false);
7645
      break;
7646
3
    case 955: // --minimal-unsat-cores
7647
3
        assign_smt_minimalUnsatCores(opts, option, true);
7648
3
      break;
7649
    case 956:// --no-minimal-unsat-cores
7650
        assign_smt_minimalUnsatCores(opts, option, false);
7651
      break;
7652
6
    case 957: // --model-cores=MODE
7653
6
        assign_smt_modelCoresMode(opts, option, optionarg);
7654
6
      break;
7655
1
    case 958: // --model-u-print=MODE
7656
    case 959: // --model-uninterp-print
7657
1
        assign_smt_modelUninterpPrint(opts, option, optionarg);
7658
1
      break;
7659
1
    case 960: // --model-witness-value
7660
1
        assign_smt_modelWitnessValue(opts, option, true);
7661
1
      break;
7662
    case 961:// --no-model-witness-value
7663
        assign_smt_modelWitnessValue(opts, option, false);
7664
      break;
7665
    case 962: // --on-repeat-ite-simp
7666
        assign_smt_doITESimpOnRepeat(opts, option, true);
7667
      break;
7668
    case 963:// --no-on-repeat-ite-simp
7669
        assign_smt_doITESimpOnRepeat(opts, option, false);
7670
      break;
7671
12
    case 964: // --produce-abducts
7672
12
        assign_smt_produceAbducts(opts, option, true);
7673
12
      break;
7674
    case 965:// --no-produce-abducts
7675
        assign_smt_produceAbducts(opts, option, false);
7676
      break;
7677
    case 966: // --produce-assertions
7678
        assign_smt_produceAssertions(opts, option, true);
7679
      break;
7680
    case 967:// --no-produce-assertions
7681
        assign_smt_produceAssertions(opts, option, false);
7682
      break;
7683
    case 968: // --produce-assignments
7684
        assign_smt_produceAssignments(opts, option, true);
7685
      break;
7686
    case 969:// --no-produce-assignments
7687
        assign_smt_produceAssignments(opts, option, false);
7688
      break;
7689
8
    case 970: // --produce-interpols=MODE
7690
8
        assign_smt_produceInterpols(opts, option, optionarg);
7691
8
      break;
7692
37
    case 'm':
7693
    case 971: // --produce-models
7694
37
        assign_smt_produceModels(opts, option, true);
7695
37
      break;
7696
    case 972:// --no-produce-models
7697
        assign_smt_produceModels(opts, option, false);
7698
      break;
7699
7
    case 973: // --produce-proofs
7700
7
        assign_smt_produceProofs(opts, option, true);
7701
7
      break;
7702
18
    case 974:// --no-produce-proofs
7703
18
        assign_smt_produceProofs(opts, option, false);
7704
18
      break;
7705
    case 975: // --produce-unsat-assumptions
7706
        assign_smt_unsatAssumptions(opts, option, true);
7707
      break;
7708
    case 976:// --no-produce-unsat-assumptions
7709
        assign_smt_unsatAssumptions(opts, option, false);
7710
      break;
7711
4
    case 977: // --produce-unsat-cores
7712
4
        assign_smt_unsatCores(opts, option, true);
7713
4
      break;
7714
2
    case 978:// --no-produce-unsat-cores
7715
2
        assign_smt_unsatCores(opts, option, false);
7716
2
      break;
7717
2
    case 979: // --repeat-simp
7718
2
        assign_smt_repeatSimp(opts, option, true);
7719
2
      break;
7720
    case 980:// --no-repeat-simp
7721
        assign_smt_repeatSimp(opts, option, false);
7722
      break;
7723
    case 981: // --simp-ite-compress
7724
        assign_smt_compressItes(opts, option, true);
7725
      break;
7726
    case 982:// --no-simp-ite-compress
7727
        assign_smt_compressItes(opts, option, false);
7728
      break;
7729
    case 983: // --simp-ite-hunt-zombies=N
7730
        assign_smt_zombieHuntThreshold(opts, option, optionarg);
7731
      break;
7732
    case 984: // --simp-with-care
7733
        assign_smt_simplifyWithCareEnabled(opts, option, true);
7734
      break;
7735
    case 985:// --no-simp-with-care
7736
        assign_smt_simplifyWithCareEnabled(opts, option, false);
7737
      break;
7738
31
    case 986: // --simplification=MODE
7739
    case 987: // --simplification-mode
7740
31
        assign_smt_simplificationMode(opts, option, optionarg);
7741
31
      break;
7742
135
    case 988: // --solve-bv-as-int=MODE
7743
135
        assign_smt_solveBVAsInt(opts, option, optionarg);
7744
135
      break;
7745
11
    case 989: // --solve-int-as-bv=N
7746
11
        assign_smt_solveIntAsBV(opts, option, optionarg);
7747
11
      break;
7748
9
    case 990: // --solve-real-as-int
7749
9
        assign_smt_solveRealAsInt(opts, option, true);
7750
9
      break;
7751
    case 991:// --no-solve-real-as-int
7752
        assign_smt_solveRealAsInt(opts, option, false);
7753
      break;
7754
20
    case 992: // --sort-inference
7755
20
        assign_smt_sortInference(opts, option, true);
7756
20
      break;
7757
    case 993:// --no-sort-inference
7758
        assign_smt_sortInference(opts, option, false);
7759
      break;
7760
    case 994: // --static-learning
7761
        assign_smt_doStaticLearning(opts, option, true);
7762
      break;
7763
    case 995:// --no-static-learning
7764
        assign_smt_doStaticLearning(opts, option, false);
7765
      break;
7766
182
    case 996: // --sygus-out=MODE
7767
182
        assign_smt_sygusOut(opts, option, optionarg);
7768
182
      break;
7769
    case 997: // --sygus-print-callbacks
7770
        assign_smt_sygusPrintCallbacks(opts, option, true);
7771
      break;
7772
    case 998:// --no-sygus-print-callbacks
7773
        assign_smt_sygusPrintCallbacks(opts, option, false);
7774
      break;
7775
104
    case 999: // --unconstrained-simp
7776
104
        assign_smt_unconstrainedSimp(opts, option, true);
7777
104
      break;
7778
3
    case 1000:// --no-unconstrained-simp
7779
3
        assign_smt_unconstrainedSimp(opts, option, false);
7780
3
      break;
7781
2
    case 1001: // --unsat-cores-mode=MODE
7782
2
        assign_smt_unsatCoresMode(opts, option, optionarg);
7783
2
      break;
7784
25
    case 1002: // --re-elim
7785
25
        assign_strings_regExpElim(opts, option, true);
7786
25
      break;
7787
10
    case 1003:// --no-re-elim
7788
10
        assign_strings_regExpElim(opts, option, false);
7789
10
      break;
7790
12
    case 1004: // --re-elim-agg
7791
12
        assign_strings_regExpElimAgg(opts, option, true);
7792
12
      break;
7793
    case 1005:// --no-re-elim-agg
7794
        assign_strings_regExpElimAgg(opts, option, false);
7795
      break;
7796
    case 1006: // --re-inter-mode=MODE
7797
        assign_strings_stringRegExpInterMode(opts, option, optionarg);
7798
      break;
7799
    case 1007: // --strings-check-entail-len
7800
        assign_strings_stringCheckEntailLen(opts, option, true);
7801
      break;
7802
    case 1008:// --no-strings-check-entail-len
7803
        assign_strings_stringCheckEntailLen(opts, option, false);
7804
      break;
7805
2
    case 1009: // --strings-eager
7806
2
        assign_strings_stringEager(opts, option, true);
7807
2
      break;
7808
    case 1010:// --no-strings-eager
7809
        assign_strings_stringEager(opts, option, false);
7810
      break;
7811
    case 1011: // --strings-eager-eval
7812
        assign_strings_stringEagerEval(opts, option, true);
7813
      break;
7814
    case 1012:// --no-strings-eager-eval
7815
        assign_strings_stringEagerEval(opts, option, false);
7816
      break;
7817
    case 1013: // --strings-eager-len
7818
        assign_strings_stringEagerLen(opts, option, true);
7819
      break;
7820
    case 1014:// --no-strings-eager-len
7821
        assign_strings_stringEagerLen(opts, option, false);
7822
      break;
7823
328
    case 1015: // --strings-exp
7824
328
        assign_strings_stringExp(opts, option, true);
7825
328
      break;
7826
    case 1016:// --no-strings-exp
7827
        assign_strings_stringExp(opts, option, false);
7828
      break;
7829
    case 1017: // --strings-ff
7830
        assign_strings_stringFlatForms(opts, option, true);
7831
      break;
7832
    case 1018:// --no-strings-ff
7833
        assign_strings_stringFlatForms(opts, option, false);
7834
      break;
7835
25
    case 1019: // --strings-fmf
7836
25
        assign_strings_stringFMF(opts, option, true);
7837
25
      break;
7838
    case 1020:// --no-strings-fmf
7839
        assign_strings_stringFMF(opts, option, false);
7840
      break;
7841
    case 1021: // --strings-guess-model
7842
        assign_strings_stringGuessModel(opts, option, true);
7843
      break;
7844
    case 1022:// --no-strings-guess-model
7845
        assign_strings_stringGuessModel(opts, option, false);
7846
      break;
7847
    case 1023: // --strings-infer-as-lemmas
7848
        assign_strings_stringInferAsLemmas(opts, option, true);
7849
      break;
7850
    case 1024:// --no-strings-infer-as-lemmas
7851
        assign_strings_stringInferAsLemmas(opts, option, false);
7852
      break;
7853
    case 1025: // --strings-infer-sym
7854
        assign_strings_stringInferSym(opts, option, true);
7855
      break;
7856
    case 1026:// --no-strings-infer-sym
7857
        assign_strings_stringInferSym(opts, option, false);
7858
      break;
7859
    case 1027: // --strings-lazy-pp
7860
        assign_strings_stringLazyPreproc(opts, option, true);
7861
      break;
7862
21
    case 1028:// --no-strings-lazy-pp
7863
21
        assign_strings_stringLazyPreproc(opts, option, false);
7864
21
      break;
7865
    case 1029: // --strings-len-norm
7866
        assign_strings_stringLenNorm(opts, option, true);
7867
      break;
7868
    case 1030:// --no-strings-len-norm
7869
        assign_strings_stringLenNorm(opts, option, false);
7870
      break;
7871
    case 1031: // --strings-lprop-csp
7872
        assign_strings_stringLenPropCsp(opts, option, true);
7873
      break;
7874
    case 1032:// --no-strings-lprop-csp
7875
        assign_strings_stringLenPropCsp(opts, option, false);
7876
      break;
7877
    case 1033: // --strings-min-prefix-explain
7878
        assign_strings_stringMinPrefixExplain(opts, option, true);
7879
      break;
7880
    case 1034:// --no-strings-min-prefix-explain
7881
        assign_strings_stringMinPrefixExplain(opts, option, false);
7882
      break;
7883
    case 1035: // --strings-process-loop-mode=MODE
7884
        assign_strings_stringProcessLoopMode(opts, option, optionarg);
7885
      break;
7886
    case 1036: // --strings-rexplain-lemmas
7887
        assign_strings_stringRExplainLemmas(opts, option, true);
7888
      break;
7889
    case 1037:// --no-strings-rexplain-lemmas
7890
        assign_strings_stringRExplainLemmas(opts, option, false);
7891
      break;
7892
    case 1038: // --strings-unified-vspt
7893
        assign_strings_stringUnifiedVSpt(opts, option, true);
7894
      break;
7895
    case 1039:// --no-strings-unified-vspt
7896
        assign_strings_stringUnifiedVSpt(opts, option, false);
7897
      break;
7898
    case 1040: // --assign-function-values
7899
        assign_theory_assignFunctionValues(opts, option, true);
7900
      break;
7901
    case 1041:// --no-assign-function-values
7902
        assign_theory_assignFunctionValues(opts, option, false);
7903
      break;
7904
    case 1042: // --condense-function-values
7905
        assign_theory_condenseFunctionValues(opts, option, true);
7906
      break;
7907
    case 1043:// --no-condense-function-values
7908
        assign_theory_condenseFunctionValues(opts, option, false);
7909
      break;
7910
56
    case 1044: // --ee-mode=MODE
7911
56
        assign_theory_eeMode(opts, option, optionarg);
7912
56
      break;
7913
    case 1045: // --relevance-filter
7914
        assign_theory_relevanceFilter(opts, option, true);
7915
      break;
7916
    case 1046:// --no-relevance-filter
7917
        assign_theory_relevanceFilter(opts, option, false);
7918
      break;
7919
    case 1047: // --tc-mode=MODE
7920
        assign_theory_tcMode(opts, option, optionarg);
7921
      break;
7922
5
    case 1048: // --theoryof-mode=MODE
7923
5
        assign_theory_theoryOfMode(opts, option, optionarg);
7924
5
      break;
7925
    case 1049: // --symmetry-breaker
7926
    case 1050: // --uf-symmetry-breaker
7927
        assign_uf_ufSymmetryBreaker(opts, option, true);
7928
      break;
7929
    case 1051:// --no-symmetry-breaker
7930
    case 1052:// --no-uf-symmetry-breaker
7931
        assign_uf_ufSymmetryBreaker(opts, option, false);
7932
      break;
7933
    case 1053: // --uf-ho
7934
        assign_uf_ufHo(opts, option, true);
7935
      break;
7936
    case 1054:// --no-uf-ho
7937
        assign_uf_ufHo(opts, option, false);
7938
      break;
7939
    case 1055: // --uf-ho-ext
7940
        assign_uf_ufHoExt(opts, option, true);
7941
      break;
7942
    case 1056:// --no-uf-ho-ext
7943
        assign_uf_ufHoExt(opts, option, false);
7944
      break;
7945
    case 1057: // --uf-ss-abort-card=N
7946
        assign_uf_ufssAbortCardinality(opts, option, optionarg);
7947
      break;
7948
    case 1058: // --uf-ss-fair
7949
        assign_uf_ufssFairness(opts, option, true);
7950
      break;
7951
    case 1059:// --no-uf-ss-fair
7952
        assign_uf_ufssFairness(opts, option, false);
7953
      break;
7954
4
    case 1060: // --uf-ss-fair-monotone
7955
4
        assign_uf_ufssFairnessMonotone(opts, option, true);
7956
4
      break;
7957
    case 1061:// --no-uf-ss-fair-monotone
7958
        assign_uf_ufssFairnessMonotone(opts, option, false);
7959
      break;
7960
    case 1062: // --uf-ss-totality-limited=N
7961
        assign_uf_ufssTotalityLimited(opts, option, optionarg);
7962
      break;
7963
    case 1063: // --uf-ss-totality-sym-break
7964
        assign_uf_ufssTotalitySymBreak(opts, option, true);
7965
      break;
7966
    case 1064:// --no-uf-ss-totality-sym-break
7967
        assign_uf_ufssTotalitySymBreak(opts, option, false);
7968
      break;
7969
7
    case 1065: // --uf-ss=MODE
7970
7
        assign_uf_ufssMode(opts, option, optionarg);
7971
7
      break;
7972
7973
      case ':' :
7974
      // This can be a long or short option, and the way to get at the
7975
      // name of it is different.
7976
      throw OptionException(std::string("option `") + option
7977
                            + "' missing its required argument");
7978
7979
      case '?':
7980
      default:
7981
        throw OptionException(std::string("can't understand option `") + option
7982
                              + "'" + suggestCommandLineOptions(option));
7983
    }
7984
15468
  }
7985
  // clang-format on
7986
7987
18585
  Debug("options") << "got " << nonoptions.size()
7988
6195
                   << " non-option arguments." << std::endl;
7989
6195
}
7990
7991
/**
7992
 * Parse argc/argv and put the result into a cvc5::Options.
7993
 * The return value is what's left of the command line (that is, the
7994
 * non-option arguments).
7995
 *
7996
 * Throws OptionException on failures.
7997
 */
7998
8805
std::vector<std::string> parse(
7999
    Options & opts, int argc, char* argv[], std::string& binaryName)
8000
{
8001
8805
  Assert(argv != nullptr);
8002
8003
8805
  Options* cur = &Options::current();
8004
15001
  OptionsGuard guard(&cur, &opts);
8005
8006
8805
  const char *progName = argv[0];
8007
8008
  // To debug options parsing, you may prefer to simply uncomment this
8009
  // and recompile. Debug flags have not been parsed yet so these have
8010
  // not been set.
8011
  //DebugChannel.on("options");
8012
8013
8805
  Debug("options") << "options::parse == " << &opts << std::endl;
8014
8805
  Debug("options") << "argv == " << argv << std::endl;
8015
8016
  // Find the base name of the program.
8017
8805
  const char *x = strrchr(progName, '/');
8018
8805
  if(x != nullptr) {
8019
8741
    progName = x + 1;
8020
  }
8021
8805
  binaryName = std::string(progName);
8022
8023
8805
  std::vector<std::string> nonoptions;
8024
8805
  parseInternal(opts, argc, argv, nonoptions);
8025
6195
  if (Debug.isOn("options")){
8026
    for(std::vector<std::string>::const_iterator i = nonoptions.begin(),
8027
          iend = nonoptions.end(); i != iend; ++i){
8028
      Debug("options") << "nonoptions " << *i << std::endl;
8029
    }
8030
  }
8031
8032
12390
  return nonoptions;
8033
}
8034
8035
59
std::string get(const Options& options, const std::string& name)
8036
{
8037
59
  Trace("options") << "Options::getOption(" << name << ")" << std::endl;
8038
59
  if (name == "approx-branch-depth") {
8039
return std::to_string(options.arith.maxApproxDepth);
8040
}
8041
59
if (name == "arith-brab") {
8042
return options.arith.brabTest ? "true" : "false";
8043
}
8044
59
if (name == "arith-cong-man") {
8045
return options.arith.arithCongMan ? "true" : "false";
8046
}
8047
59
if (name == "arith-eq-solver") {
8048
return options.arith.arithEqSolver ? "true" : "false";
8049
}
8050
59
if (name == "arith-no-partial-fun") {
8051
return options.arith.arithNoPartialFun ? "true" : "false";
8052
}
8053
59
if (name == "arith-prop-clauses") {
8054
return std::to_string(options.arith.arithPropAsLemmaLength);
8055
}
8056
59
if (name == "arith-prop") {
8057
std::stringstream ss;
8058
ss << options.arith.arithPropagationMode;
8059
return ss.str();
8060
}
8061
59
if (name == "arith-rewrite-equalities") {
8062
return options.arith.arithRewriteEq ? "true" : "false";
8063
}
8064
59
if (name == "collect-pivot-stats") {
8065
return options.arith.collectPivots ? "true" : "false";
8066
}
8067
59
if (name == "cut-all-bounded") {
8068
return options.arith.doCutAllBounded ? "true" : "false";
8069
}
8070
59
if (name == "dio-decomps") {
8071
return options.arith.exportDioDecompositions ? "true" : "false";
8072
}
8073
59
if (name == "dio-repeat") {
8074
return options.arith.dioRepeat ? "true" : "false";
8075
}
8076
59
if (name == "dio-solver") {
8077
return options.arith.arithDioSolver ? "true" : "false";
8078
}
8079
59
if (name == "dio-turns") {
8080
return std::to_string(options.arith.dioSolverTurns);
8081
}
8082
59
if (name == "error-selection-rule") {
8083
std::stringstream ss;
8084
ss << options.arith.arithErrorSelectionRule;
8085
return ss.str();
8086
}
8087
59
if (name == "fc-penalties") {
8088
return options.arith.havePenalties ? "true" : "false";
8089
}
8090
59
if (name == "heuristic-pivots") {
8091
return std::to_string(options.arith.arithHeuristicPivots);
8092
}
8093
59
if (name == "lemmas-on-replay-failure") {
8094
return options.arith.replayFailureLemma ? "true" : "false";
8095
}
8096
59
if (name == "maxCutsInContext") {
8097
return std::to_string(options.arith.maxCutsInContext);
8098
}
8099
59
if (name == "miplib-trick") {
8100
return options.arith.arithMLTrick ? "true" : "false";
8101
}
8102
59
if (name == "miplib-trick-subs") {
8103
return std::to_string(options.arith.arithMLTrickSubstitutions);
8104
}
8105
59
if (name == "new-prop") {
8106
return options.arith.newProp ? "true" : "false";
8107
}
8108
59
if (name == "nl-cad") {
8109
return options.arith.nlCad ? "true" : "false";
8110
}
8111
59
if (name == "nl-cad-initial") {
8112
return options.arith.nlCadUseInitial ? "true" : "false";
8113
}
8114
59
if (name == "nl-cad-lift") {
8115
std::stringstream ss;
8116
ss << options.arith.nlCadLifting;
8117
return ss.str();
8118
}
8119
59
if (name == "nl-cad-proj") {
8120
std::stringstream ss;
8121
ss << options.arith.nlCadProjection;
8122
return ss.str();
8123
}
8124
59
if (name == "nl-ext-ent-conf") {
8125
return options.arith.nlExtEntailConflicts ? "true" : "false";
8126
}
8127
59
if (name == "nl-ext-factor") {
8128
return options.arith.nlExtFactor ? "true" : "false";
8129
}
8130
59
if (name == "nl-ext-inc-prec") {
8131
return options.arith.nlExtIncPrecision ? "true" : "false";
8132
}
8133
59
if (name == "nl-ext-purify") {
8134
return options.arith.nlExtPurify ? "true" : "false";
8135
}
8136
59
if (name == "nl-ext-rbound") {
8137
return options.arith.nlExtResBound ? "true" : "false";
8138
}
8139
59
if (name == "nl-ext-rewrite") {
8140
return options.arith.nlExtRewrites ? "true" : "false";
8141
}
8142
59
if (name == "nl-ext-split-zero") {
8143
return options.arith.nlExtSplitZero ? "true" : "false";
8144
}
8145
59
if (name == "nl-ext-tf-taylor-deg") {
8146
return std::to_string(options.arith.nlExtTfTaylorDegree);
8147
}
8148
59
if (name == "nl-ext-tf-tplanes") {
8149
return options.arith.nlExtTfTangentPlanes ? "true" : "false";
8150
}
8151
59
if (name == "nl-ext-tplanes") {
8152
return options.arith.nlExtTangentPlanes ? "true" : "false";
8153
}
8154
59
if (name == "nl-ext-tplanes-interleave") {
8155
return options.arith.nlExtTangentPlanesInterleave ? "true" : "false";
8156
}
8157
59
if (name == "nl-ext") {
8158
std::stringstream ss;
8159
ss << options.arith.nlExt;
8160
return ss.str();
8161
}
8162
59
if (name == "nl-icp") {
8163
return options.arith.nlICP ? "true" : "false";
8164
}
8165
59
if (name == "nl-rlv") {
8166
std::stringstream ss;
8167
ss << options.arith.nlRlvMode;
8168
return ss.str();
8169
}
8170
59
if (name == "pb-rewrites") {
8171
return options.arith.pbRewrites ? "true" : "false";
8172
}
8173
59
if (name == "pivot-threshold") {
8174
return std::to_string(options.arith.arithPivotThreshold);
8175
}
8176
59
if (name == "pp-assert-max-sub-size") {
8177
return std::to_string(options.arith.ppAssertMaxSubSize);
8178
}
8179
59
if (name == "prop-row-length") {
8180
return std::to_string(options.arith.arithPropagateMaxLength);
8181
}
8182
59
if (name == "replay-early-close-depth") {
8183
return std::to_string(options.arith.replayEarlyCloseDepths);
8184
}
8185
59
if (name == "replay-failure-penalty") {
8186
return std::to_string(options.arith.replayFailurePenalty);
8187
}
8188
59
if (name == "replay-lemma-reject-cut") {
8189
return std::to_string(options.arith.lemmaRejectCutSize);
8190
}
8191
59
if (name == "replay-num-err-penalty") {
8192
return std::to_string(options.arith.replayNumericFailurePenalty);
8193
}
8194
59
if (name == "replay-reject-cut") {
8195
return std::to_string(options.arith.replayRejectCutSize);
8196
}
8197
59
if (name == "replay-soi-major-threshold-pen") {
8198
return std::to_string(options.arith.soiApproxMajorFailurePen);
8199
}
8200
59
if (name == "replay-soi-major-threshold") {
8201
return std::to_string(options.arith.soiApproxMajorFailure);
8202
}
8203
59
if (name == "replay-soi-minor-threshold-pen") {
8204
return std::to_string(options.arith.soiApproxMinorFailurePen);
8205
}
8206
59
if (name == "replay-soi-minor-threshold") {
8207
return std::to_string(options.arith.soiApproxMinorFailure);
8208
}
8209
59
if (name == "restrict-pivots") {
8210
return options.arith.restrictedPivots ? "true" : "false";
8211
}
8212
59
if (name == "revert-arith-models-on-unsat") {
8213
return options.arith.revertArithModels ? "true" : "false";
8214
}
8215
59
if (name == "rr-turns") {
8216
return std::to_string(options.arith.rrTurns);
8217
}
8218
59
if (name == "se-solve-int") {
8219
return options.arith.trySolveIntStandardEffort ? "true" : "false";
8220
}
8221
59
if (name == "simplex-check-period") {
8222
return std::to_string(options.arith.arithSimplexCheckPeriod);
8223
}
8224
59
if (name == "soi-qe") {
8225
return options.arith.soiQuickExplain ? "true" : "false";
8226
}
8227
59
if (name == "standard-effort-variable-order-pivots") {
8228
return std::to_string(options.arith.arithStandardCheckVarOrderPivots);
8229
}
8230
59
if (name == "unate-lemmas") {
8231
std::stringstream ss;
8232
ss << options.arith.arithUnateLemmaMode;
8233
return ss.str();
8234
}
8235
59
if (name == "use-approx") {
8236
return options.arith.useApprox ? "true" : "false";
8237
}
8238
59
if (name == "use-fcsimplex") {
8239
return options.arith.useFC ? "true" : "false";
8240
}
8241
59
if (name == "use-soi") {
8242
return options.arith.useSOI ? "true" : "false";
8243
}
8244
59
if (name == "arrays-config") {
8245
return std::to_string(options.arrays.arraysConfig);
8246
}
8247
59
if (name == "arrays-eager-index") {
8248
return options.arrays.arraysEagerIndexSplitting ? "true" : "false";
8249
}
8250
59
if (name == "arrays-eager-lemmas") {
8251
return options.arrays.arraysEagerLemmas ? "true" : "false";
8252
}
8253
59
if (name == "arrays-exp") {
8254
17
return options.arrays.arraysExp ? "true" : "false";
8255
}
8256
42
if (name == "arrays-model-based") {
8257
return options.arrays.arraysModelBased ? "true" : "false";
8258
}
8259
42
if (name == "arrays-optimize-linear") {
8260
return options.arrays.arraysOptimizeLinear ? "true" : "false";
8261
}
8262
42
if (name == "arrays-prop") {
8263
return std::to_string(options.arrays.arraysPropagate);
8264
}
8265
42
if (name == "arrays-reduce-sharing") {
8266
return options.arrays.arraysReduceSharing ? "true" : "false";
8267
}
8268
42
if (name == "arrays-weak-equiv") {
8269
return options.arrays.arraysWeakEquivalence ? "true" : "false";
8270
}
8271
42
if (name == "diagnostic-output-channel" || name == "err") {
8272
std::stringstream ss;
8273
ss << options.base.err;
8274
return ss.str();
8275
}
8276
42
if (name == "in") {
8277
std::stringstream ss;
8278
ss << options.base.in;
8279
return ss.str();
8280
}
8281
42
if (name == "incremental") {
8282
2
return options.base.incrementalSolving ? "true" : "false";
8283
}
8284
40
if (name == "input-language" || name == "lang") {
8285
2
std::stringstream ss;
8286
1
ss << options.base.inputLanguage;
8287
1
return ss.str();
8288
}
8289
39
if (name == "out" || name == "regular-output-channel") {
8290
std::stringstream ss;
8291
ss << options.base.out;
8292
return ss.str();
8293
}
8294
39
if (name == "output-lang" || name == "output-language") {
8295
std::stringstream ss;
8296
ss << options.base.outputLanguage;
8297
return ss.str();
8298
}
8299
39
if (name == "output") {
8300
std::stringstream ss;
8301
ss << options.base.outputTag;
8302
return ss.str();
8303
}
8304
39
if (name == "parse-only") {
8305
return options.base.parseOnly ? "true" : "false";
8306
}
8307
39
if (name == "preprocess-only") {
8308
return options.base.preprocessOnly ? "true" : "false";
8309
}
8310
39
if (name == "print-success") {
8311
return options.base.printSuccess ? "true" : "false";
8312
}
8313
39
if (name == "reproducible-resource-limit" || name == "rlimit-per") {
8314
return std::to_string(options.base.perCallResourceLimit);
8315
}
8316
39
if (name == "rlimit") {
8317
return std::to_string(options.base.cumulativeResourceLimit);
8318
}
8319
39
if (name == "stats") {
8320
5
return options.base.statistics ? "true" : "false";
8321
}
8322
34
if (name == "stats-all") {
8323
5
return options.base.statisticsAll ? "true" : "false";
8324
}
8325
29
if (name == "stats-every-query") {
8326
5
return options.base.statisticsEveryQuery ? "true" : "false";
8327
}
8328
24
if (name == "stats-expert") {
8329
5
return options.base.statisticsExpert ? "true" : "false";
8330
}
8331
19
if (name == "tlimit-per") {
8332
return std::to_string(options.base.perCallMillisecondLimit);
8333
}
8334
19
if (name == "tlimit") {
8335
return std::to_string(options.base.cumulativeMillisecondLimit);
8336
}
8337
19
if (name == "verbosity") {
8338
6
return std::to_string(options.base.verbosity);
8339
}
8340
13
if (name == "bitblast-aig") {
8341
return options.bv.bitvectorAig ? "true" : "false";
8342
}
8343
13
if (name == "bitblast") {
8344
std::stringstream ss;
8345
ss << options.bv.bitblastMode;
8346
return ss.str();
8347
}
8348
13
if (name == "bitwise-eq") {
8349
return options.bv.bitwiseEq ? "true" : "false";
8350
}
8351
13
if (name == "bool-to-bv") {
8352
std::stringstream ss;
8353
ss << options.bv.boolToBitvector;
8354
return ss.str();
8355
}
8356
13
if (name == "bv-abstraction") {
8357
return options.bv.bvAbstraction ? "true" : "false";
8358
}
8359
13
if (name == "bv-aig-simp") {
8360
return options.bv.bitvectorAigSimplifications;
8361
}
8362
13
if (name == "bv-alg-extf") {
8363
return options.bv.bvAlgExtf ? "true" : "false";
8364
}
8365
13
if (name == "bv-algebraic-budget") {
8366
return std::to_string(options.bv.bitvectorAlgebraicBudget);
8367
}
8368
13
if (name == "bv-algebraic-solver") {
8369
return options.bv.bitvectorAlgebraicSolver ? "true" : "false";
8370
}
8371
13
if (name == "bv-assert-input") {
8372
return options.bv.bvAssertInput ? "true" : "false";
8373
}
8374
13
if (name == "bv-eager-explanations") {
8375
return options.bv.bvEagerExplanations ? "true" : "false";
8376
}
8377
13
if (name == "bv-eq-solver") {
8378
return options.bv.bitvectorEqualitySolver ? "true" : "false";
8379
}
8380
13
if (name == "bv-extract-arith") {
8381
return options.bv.bvExtractArithRewrite ? "true" : "false";
8382
}
8383
13
if (name == "bv-gauss-elim") {
8384
return options.bv.bvGaussElim ? "true" : "false";
8385
}
8386
13
if (name == "bv-inequality-solver") {
8387
return options.bv.bitvectorInequalitySolver ? "true" : "false";
8388
}
8389
13
if (name == "bv-intro-pow2") {
8390
return options.bv.bvIntroducePow2 ? "true" : "false";
8391
}
8392
13
if (name == "bv-num-func") {
8393
return std::to_string(options.bv.bvNumFunc);
8394
}
8395
13
if (name == "bv-print-consts-as-indexed-symbols") {
8396
return options.bv.bvPrintConstsAsIndexedSymbols ? "true" : "false";
8397
}
8398
13
if (name == "bv-propagate") {
8399
return options.bv.bitvectorPropagate ? "true" : "false";
8400
}
8401
13
if (name == "bv-quick-xplain") {
8402
return options.bv.bitvectorQuickXplain ? "true" : "false";
8403
}
8404
13
if (name == "bv-sat-solver") {
8405
std::stringstream ss;
8406
ss << options.bv.bvSatSolver;
8407
return ss.str();
8408
}
8409
13
if (name == "bv-skolemize") {
8410
return options.bv.skolemizeArguments ? "true" : "false";
8411
}
8412
13
if (name == "bv-solver") {
8413
std::stringstream ss;
8414
ss << options.bv.bvSolver;
8415
return ss.str();
8416
}
8417
13
if (name == "bv-to-bool") {
8418
return options.bv.bitvectorToBool ? "true" : "false";
8419
}
8420
13
if (name == "cdt-bisimilar") {
8421
return options.datatypes.cdtBisimilar ? "true" : "false";
8422
}
8423
13
if (name == "dt-binary-split") {
8424
return options.datatypes.dtBinarySplit ? "true" : "false";
8425
}
8426
13
if (name == "dt-blast-splits") {
8427
return options.datatypes.dtBlastSplits ? "true" : "false";
8428
}
8429
13
if (name == "dt-cyclic") {
8430
return options.datatypes.dtCyclic ? "true" : "false";
8431
}
8432
13
if (name == "dt-force-assignment") {
8433
return options.datatypes.dtForceAssignment ? "true" : "false";
8434
}
8435
13
if (name == "dt-infer-as-lemmas") {
8436
return options.datatypes.dtInferAsLemmas ? "true" : "false";
8437
}
8438
13
if (name == "dt-nested-rec") {
8439
return options.datatypes.dtNestedRec ? "true" : "false";
8440
}
8441
13
if (name == "dt-polite-optimize") {
8442
return options.datatypes.dtPoliteOptimize ? "true" : "false";
8443
}
8444
13
if (name == "dt-rewrite-error-sel") {
8445
return options.datatypes.dtRewriteErrorSel ? "true" : "false";
8446
}
8447
13
if (name == "dt-share-sel") {
8448
return options.datatypes.dtSharedSelectors ? "true" : "false";
8449
}
8450
13
if (name == "sygus-abort-size") {
8451
return std::to_string(options.datatypes.sygusAbortSize);
8452
}
8453
13
if (name == "sygus-fair-max") {
8454
return options.datatypes.sygusFairMax ? "true" : "false";
8455
}
8456
13
if (name == "sygus-fair") {
8457
std::stringstream ss;
8458
ss << options.datatypes.sygusFair;
8459
return ss.str();
8460
}
8461
13
if (name == "sygus-sym-break") {
8462
return options.datatypes.sygusSymBreak ? "true" : "false";
8463
}
8464
13
if (name == "sygus-sym-break-agg") {
8465
return options.datatypes.sygusSymBreakAgg ? "true" : "false";
8466
}
8467
13
if (name == "sygus-sym-break-dynamic") {
8468
return options.datatypes.sygusSymBreakDynamic ? "true" : "false";
8469
}
8470
13
if (name == "sygus-sym-break-lazy") {
8471
return options.datatypes.sygusSymBreakLazy ? "true" : "false";
8472
}
8473
13
if (name == "sygus-sym-break-pbe") {
8474
return options.datatypes.sygusSymBreakPbe ? "true" : "false";
8475
}
8476
13
if (name == "sygus-sym-break-rlv") {
8477
return options.datatypes.sygusSymBreakRlv ? "true" : "false";
8478
}
8479
13
if (name == "decision-random-weight") {
8480
return std::to_string(options.decision.decisionRandomWeight);
8481
}
8482
13
if (name == "decision-threshold") {
8483
std::stringstream ss;
8484
ss << options.decision.decisionThreshold;
8485
return ss.str();
8486
}
8487
13
if (name == "decision-use-weight") {
8488
return options.decision.decisionUseWeight ? "true" : "false";
8489
}
8490
13
if (name == "decision-weight-internal") {
8491
std::stringstream ss;
8492
ss << options.decision.decisionWeightInternal;
8493
return ss.str();
8494
}
8495
13
if (name == "decision" || name == "decision-mode") {
8496
std::stringstream ss;
8497
ss << options.decision.decisionMode;
8498
return ss.str();
8499
}
8500
13
if (name == "jh-rlv-order") {
8501
return options.decision.jhRlvOrder ? "true" : "false";
8502
}
8503
13
if (name == "jh-skolem-rlv") {
8504
std::stringstream ss;
8505
ss << options.decision.jhSkolemRlvMode;
8506
return ss.str();
8507
}
8508
13
if (name == "jh-skolem") {
8509
std::stringstream ss;
8510
ss << options.decision.jhSkolemMode;
8511
return ss.str();
8512
}
8513
13
if (name == "dag-thresh") {
8514
1
return std::to_string(options.expr.defaultDagThresh);
8515
}
8516
12
if (name == "expr-depth") {
8517
return std::to_string(options.expr.defaultExprDepth);
8518
}
8519
12
if (name == "type-checking") {
8520
return options.expr.typeChecking ? "true" : "false";
8521
}
8522
12
if (name == "fp-exp") {
8523
return options.fp.fpExp ? "true" : "false";
8524
}
8525
12
if (name == "fp-lazy-wb") {
8526
return options.fp.fpLazyWb ? "true" : "false";
8527
}
8528
12
if (name == "dump-instantiations") {
8529
return options.driver.dumpInstantiations ? "true" : "false";
8530
}
8531
12
if (name == "dump-instantiations-debug") {
8532
return options.driver.dumpInstantiationsDebug ? "true" : "false";
8533
}
8534
12
if (name == "dump-models") {
8535
return options.driver.dumpModels ? "true" : "false";
8536
}
8537
12
if (name == "dump-proofs") {
8538
return options.driver.dumpProofs ? "true" : "false";
8539
}
8540
12
if (name == "dump-unsat-cores") {
8541
return options.driver.dumpUnsatCores ? "true" : "false";
8542
}
8543
12
if (name == "dump-unsat-cores-full") {
8544
return options.driver.dumpUnsatCoresFull ? "true" : "false";
8545
}
8546
12
if (name == "early-exit") {
8547
return options.driver.earlyExit ? "true" : "false";
8548
}
8549
12
if (name == "force-no-limit-cpu-while-dump") {
8550
return options.driver.forceNoLimitCpuWhileDump ? "true" : "false";
8551
}
8552
12
if (name == "help") {
8553
return options.driver.help ? "true" : "false";
8554
}
8555
12
if (name == "interactive") {
8556
return options.driver.interactive ? "true" : "false";
8557
}
8558
12
if (name == "interactive-prompt") {
8559
return options.driver.interactivePrompt ? "true" : "false";
8560
}
8561
12
if (name == "seed") {
8562
return std::to_string(options.driver.seed);
8563
}
8564
12
if (name == "segv-spin") {
8565
return options.driver.segvSpin ? "true" : "false";
8566
}
8567
12
if (name == "version") {
8568
return options.driver.version ? "true" : "false";
8569
}
8570
12
if (name == "filesystem-access") {
8571
return options.parser.filesystemAccess ? "true" : "false";
8572
}
8573
12
if (name == "force-logic") {
8574
return options.parser.forceLogicString;
8575
}
8576
12
if (name == "global-declarations") {
8577
return options.parser.globalDeclarations ? "true" : "false";
8578
}
8579
12
if (name == "mmap") {
8580
return options.parser.memoryMap ? "true" : "false";
8581
}
8582
12
if (name == "semantic-checks") {
8583
return options.parser.semanticChecks ? "true" : "false";
8584
}
8585
12
if (name == "strict-parsing") {
8586
return options.parser.strictParsing ? "true" : "false";
8587
}
8588
12
if (name == "flatten-ho-chains") {
8589
return options.printer.flattenHOChains ? "true" : "false";
8590
}
8591
12
if (name == "inst-format") {
8592
std::stringstream ss;
8593
ss << options.printer.instFormatMode;
8594
return ss.str();
8595
}
8596
12
if (name == "model-format") {
8597
std::stringstream ss;
8598
ss << options.printer.modelFormatMode;
8599
return ss.str();
8600
}
8601
12
if (name == "print-inst-full") {
8602
return options.printer.printInstFull ? "true" : "false";
8603
}
8604
12
if (name == "print-inst") {
8605
std::stringstream ss;
8606
ss << options.printer.printInstMode;
8607
return ss.str();
8608
}
8609
12
if (name == "proof-eager-checking") {
8610
return options.proof.proofEagerChecking ? "true" : "false";
8611
}
8612
12
if (name == "proof-format-mode") {
8613
std::stringstream ss;
8614
ss << options.proof.proofFormatMode;
8615
return ss.str();
8616
}
8617
12
if (name == "proof-granularity") {
8618
std::stringstream ss;
8619
ss << options.proof.proofGranularityMode;
8620
return ss.str();
8621
}
8622
12
if (name == "proof-pedantic") {
8623
return std::to_string(options.proof.proofPedantic);
8624
}
8625
12
if (name == "proof-print-conclusion") {
8626
return options.proof.proofPrintConclusion ? "true" : "false";
8627
}
8628
12
if (name == "minisat-dump-dimacs") {
8629
return options.prop.minisatDumpDimacs ? "true" : "false";
8630
}
8631
12
if (name == "minisat-elimination") {
8632
return options.prop.minisatUseElim ? "true" : "false";
8633
}
8634
12
if (name == "random-freq" || name == "random-frequency") {
8635
return std::to_string(options.prop.satRandomFreq);
8636
}
8637
12
if (name == "random-seed") {
8638
4
return std::to_string(options.prop.satRandomSeed);
8639
}
8640
8
if (name == "refine-conflicts") {
8641
return options.prop.sat_refine_conflicts ? "true" : "false";
8642
}
8643
8
if (name == "restart-int-base") {
8644
return std::to_string(options.prop.satRestartFirst);
8645
}
8646
8
if (name == "restart-int-inc") {
8647
return std::to_string(options.prop.satRestartInc);
8648
}
8649
8
if (name == "ag-miniscope-quant") {
8650
return options.quantifiers.aggressiveMiniscopeQuant ? "true" : "false";
8651
}
8652
8
if (name == "cegis-sample") {
8653
std::stringstream ss;
8654
ss << options.quantifiers.cegisSample;
8655
return ss.str();
8656
}
8657
8
if (name == "cegqi") {
8658
return options.quantifiers.cegqi ? "true" : "false";
8659
}
8660
8
if (name == "cegqi-all") {
8661
return options.quantifiers.cegqiAll ? "true" : "false";
8662
}
8663
8
if (name == "cegqi-bv") {
8664
return options.quantifiers.cegqiBv ? "true" : "false";
8665
}
8666
8
if (name == "cegqi-bv-concat-inv") {
8667
return options.quantifiers.cegqiBvConcInv ? "true" : "false";
8668
}
8669
8
if (name == "cegqi-bv-ineq") {
8670
std::stringstream ss;
8671
ss << options.quantifiers.cegqiBvIneqMode;
8672
return ss.str();
8673
}
8674
8
if (name == "cegqi-bv-interleave-value") {
8675
return options.quantifiers.cegqiBvInterleaveValue ? "true" : "false";
8676
}
8677
8
if (name == "cegqi-bv-linear") {
8678
return options.quantifiers.cegqiBvLinearize ? "true" : "false";
8679
}
8680
8
if (name == "cegqi-bv-rm-extract") {
8681
return options.quantifiers.cegqiBvRmExtract ? "true" : "false";
8682
}
8683
8
if (name == "cegqi-bv-solve-nl") {
8684
return options.quantifiers.cegqiBvSolveNl ? "true" : "false";
8685
}
8686
8
if (name == "cegqi-full") {
8687
return options.quantifiers.cegqiFullEffort ? "true" : "false";
8688
}
8689
8
if (name == "cegqi-innermost") {
8690
return options.quantifiers.cegqiInnermost ? "true" : "false";
8691
}
8692
8
if (name == "cegqi-midpoint") {
8693
return options.quantifiers.cegqiMidpoint ? "true" : "false";
8694
}
8695
8
if (name == "cegqi-min-bounds") {
8696
return options.quantifiers.cegqiMinBounds ? "true" : "false";
8697
}
8698
8
if (name == "cegqi-model") {
8699
return options.quantifiers.cegqiModel ? "true" : "false";
8700
}
8701
8
if (name == "cegqi-multi-inst") {
8702
return options.quantifiers.cegqiMultiInst ? "true" : "false";
8703
}
8704
8
if (name == "cegqi-nested-qe") {
8705
return options.quantifiers.cegqiNestedQE ? "true" : "false";
8706
}
8707
8
if (name == "cegqi-nopt") {
8708
return options.quantifiers.cegqiNopt ? "true" : "false";
8709
}
8710
8
if (name == "cegqi-repeat-lit") {
8711
return options.quantifiers.cegqiRepeatLit ? "true" : "false";
8712
}
8713
8
if (name == "cegqi-round-up-lia") {
8714
return options.quantifiers.cegqiRoundUpLowerLia ? "true" : "false";
8715
}
8716
8
if (name == "cegqi-sat") {
8717
return options.quantifiers.cegqiSat ? "true" : "false";
8718
}
8719
8
if (name == "cegqi-use-inf-int") {
8720
return options.quantifiers.cegqiUseInfInt ? "true" : "false";
8721
}
8722
8
if (name == "cegqi-use-inf-real") {
8723
return options.quantifiers.cegqiUseInfReal ? "true" : "false";
8724
}
8725
8
if (name == "cond-var-split-agg-quant") {
8726
return options.quantifiers.condVarSplitQuantAgg ? "true" : "false";
8727
}
8728
8
if (name == "cond-var-split-quant") {
8729
return options.quantifiers.condVarSplitQuant ? "true" : "false";
8730
}
8731
8
if (name == "conjecture-filter-active-terms") {
8732
return options.quantifiers.conjectureFilterActiveTerms ? "true" : "false";
8733
}
8734
8
if (name == "conjecture-filter-canonical") {
8735
return options.quantifiers.conjectureFilterCanonical ? "true" : "false";
8736
}
8737
8
if (name == "conjecture-filter-model") {
8738
return options.quantifiers.conjectureFilterModel ? "true" : "false";
8739
}
8740
8
if (name == "conjecture-gen") {
8741
return options.quantifiers.conjectureGen ? "true" : "false";
8742
}
8743
8
if (name == "conjecture-gen-gt-enum") {
8744
return std::to_string(options.quantifiers.conjectureGenGtEnum);
8745
}
8746
8
if (name == "conjecture-gen-max-depth") {
8747
return std::to_string(options.quantifiers.conjectureGenMaxDepth);
8748
}
8749
8
if (name == "conjecture-gen-per-round") {
8750
return std::to_string(options.quantifiers.conjectureGenPerRound);
8751
}
8752
8
if (name == "conjecture-gen-uee-intro") {
8753
return options.quantifiers.conjectureUeeIntro ? "true" : "false";
8754
}
8755
8
if (name == "conjecture-no-filter") {
8756
return options.quantifiers.conjectureNoFilter ? "true" : "false";
8757
}
8758
8
if (name == "dt-stc-ind") {
8759
return options.quantifiers.dtStcInduction ? "true" : "false";
8760
}
8761
8
if (name == "dt-var-exp-quant") {
8762
return options.quantifiers.dtVarExpandQuant ? "true" : "false";
8763
}
8764
8
if (name == "e-matching") {
8765
return options.quantifiers.eMatching ? "true" : "false";
8766
}
8767
8
if (name == "elim-taut-quant") {
8768
return options.quantifiers.elimTautQuant ? "true" : "false";
8769
}
8770
8
if (name == "ext-rewrite-quant") {
8771
return options.quantifiers.extRewriteQuant ? "true" : "false";
8772
}
8773
8
if (name == "finite-model-find") {
8774
return options.quantifiers.finiteModelFind ? "true" : "false";
8775
}
8776
8
if (name == "fmf-bound") {
8777
return options.quantifiers.fmfBound ? "true" : "false";
8778
}
8779
8
if (name == "fmf-bound-int") {
8780
return options.quantifiers.fmfBoundInt ? "true" : "false";
8781
}
8782
8
if (name == "fmf-bound-lazy") {
8783
return options.quantifiers.fmfBoundLazy ? "true" : "false";
8784
}
8785
8
if (name == "fmf-fmc-simple") {
8786
return options.quantifiers.fmfFmcSimple ? "true" : "false";
8787
}
8788
8
if (name == "fmf-fresh-dc") {
8789
return options.quantifiers.fmfFreshDistConst ? "true" : "false";
8790
}
8791
8
if (name == "fmf-fun") {
8792
return options.quantifiers.fmfFunWellDefined ? "true" : "false";
8793
}
8794
8
if (name == "fmf-fun-rlv") {
8795
return options.quantifiers.fmfFunWellDefinedRelevant ? "true" : "false";
8796
}
8797
8
if (name == "fmf-inst-engine") {
8798
return options.quantifiers.fmfInstEngine ? "true" : "false";
8799
}
8800
8
if (name == "fmf-type-completion-thresh") {
8801
return std::to_string(options.quantifiers.fmfTypeCompletionThresh);
8802
}
8803
8
if (name == "fs-interleave") {
8804
return options.quantifiers.fullSaturateInterleave ? "true" : "false";
8805
}
8806
8
if (name == "fs-stratify") {
8807
return options.quantifiers.fullSaturateStratify ? "true" : "false";
8808
}
8809
8
if (name == "fs-sum") {
8810
return options.quantifiers.fullSaturateSum ? "true" : "false";
8811
}
8812
8
if (name == "full-saturate-quant") {
8813
return options.quantifiers.fullSaturateQuant ? "true" : "false";
8814
}
8815
8
if (name == "full-saturate-quant-limit") {
8816
return std::to_string(options.quantifiers.fullSaturateLimit);
8817
}
8818
8
if (name == "full-saturate-quant-rd") {
8819
return options.quantifiers.fullSaturateQuantRd ? "true" : "false";
8820
}
8821
8
if (name == "global-negate") {
8822
return options.quantifiers.globalNegate ? "true" : "false";
8823
}
8824
8
if (name == "ho-elim") {
8825
return options.quantifiers.hoElim ? "true" : "false";
8826
}
8827
8
if (name == "ho-elim-store-ax") {
8828
return options.quantifiers.hoElimStoreAx ? "true" : "false";
8829
}
8830
8
if (name == "ho-matching") {
8831
return options.quantifiers.hoMatching ? "true" : "false";
8832
}
8833
8
if (name == "ho-matching-var-priority") {
8834
return options.quantifiers.hoMatchingVarArgPriority ? "true" : "false";
8835
}
8836
8
if (name == "ho-merge-term-db") {
8837
return options.quantifiers.hoMergeTermDb ? "true" : "false";
8838
}
8839
8
if (name == "increment-triggers") {
8840
return options.quantifiers.incrementTriggers ? "true" : "false";
8841
}
8842
8
if (name == "inst-level-input-only") {
8843
return options.quantifiers.instLevelInputOnly ? "true" : "false";
8844
}
8845
8
if (name == "inst-max-level") {
8846
return std::to_string(options.quantifiers.instMaxLevel);
8847
}
8848
8
if (name == "inst-max-rounds") {
8849
return std::to_string(options.quantifiers.instMaxRounds);
8850
}
8851
8
if (name == "inst-no-entail") {
8852
return options.quantifiers.instNoEntail ? "true" : "false";
8853
}
8854
8
if (name == "inst-when-phase") {
8855
return std::to_string(options.quantifiers.instWhenPhase);
8856
}
8857
8
if (name == "inst-when-strict-interleave") {
8858
return options.quantifiers.instWhenStrictInterleave ? "true" : "false";
8859
}
8860
8
if (name == "inst-when-tc-first") {
8861
return options.quantifiers.instWhenTcFirst ? "true" : "false";
8862
}
8863
8
if (name == "inst-when") {
8864
std::stringstream ss;
8865
ss << options.quantifiers.instWhenMode;
8866
return ss.str();
8867
}
8868
8
if (name == "int-wf-ind") {
8869
return options.quantifiers.intWfInduction ? "true" : "false";
8870
}
8871
8
if (name == "ite-dtt-split-quant") {
8872
return options.quantifiers.iteDtTesterSplitQuant ? "true" : "false";
8873
}
8874
8
if (name == "ite-lift-quant") {
8875
std::stringstream ss;
8876
ss << options.quantifiers.iteLiftQuant;
8877
return ss.str();
8878
}
8879
8
if (name == "literal-matching") {
8880
std::stringstream ss;
8881
ss << options.quantifiers.literalMatchMode;
8882
return ss.str();
8883
}
8884
8
if (name == "macros-quant") {
8885
return options.quantifiers.macrosQuant ? "true" : "false";
8886
}
8887
8
if (name == "macros-quant-mode") {
8888
std::stringstream ss;
8889
ss << options.quantifiers.macrosQuantMode;
8890
return ss.str();
8891
}
8892
8
if (name == "mbqi-interleave") {
8893
return options.quantifiers.mbqiInterleave ? "true" : "false";
8894
}
8895
8
if (name == "mbqi-one-inst-per-round") {
8896
return options.quantifiers.fmfOneInstPerRound ? "true" : "false";
8897
}
8898
8
if (name == "mbqi") {
8899
std::stringstream ss;
8900
ss << options.quantifiers.mbqiMode;
8901
return ss.str();
8902
}
8903
8
if (name == "miniscope-quant") {
8904
return options.quantifiers.miniscopeQuant ? "true" : "false";
8905
}
8906
8
if (name == "miniscope-quant-fv") {
8907
return options.quantifiers.miniscopeQuantFreeVar ? "true" : "false";
8908
}
8909
8
if (name == "multi-trigger-cache") {
8910
return options.quantifiers.multiTriggerCache ? "true" : "false";
8911
}
8912
8
if (name == "multi-trigger-linear") {
8913
return options.quantifiers.multiTriggerLinear ? "true" : "false";
8914
}
8915
8
if (name == "multi-trigger-priority") {
8916
return options.quantifiers.multiTriggerPriority ? "true" : "false";
8917
}
8918
8
if (name == "multi-trigger-when-single") {
8919
return options.quantifiers.multiTriggerWhenSingle ? "true" : "false";
8920
}
8921
8
if (name == "partial-triggers") {
8922
return options.quantifiers.partialTriggers ? "true" : "false";
8923
}
8924
8
if (name == "pool-inst") {
8925
return options.quantifiers.poolInst ? "true" : "false";
8926
}
8927
8
if (name == "pre-skolem-quant") {
8928
return options.quantifiers.preSkolemQuant ? "true" : "false";
8929
}
8930
8
if (name == "pre-skolem-quant-agg") {
8931
return options.quantifiers.preSkolemQuantAgg ? "true" : "false";
8932
}
8933
8
if (name == "pre-skolem-quant-nested") {
8934
return options.quantifiers.preSkolemQuantNested ? "true" : "false";
8935
}
8936
8
if (name == "prenex-quant-user") {
8937
return options.quantifiers.prenexQuantUser ? "true" : "false";
8938
}
8939
8
if (name == "prenex-quant") {
8940
std::stringstream ss;
8941
ss << options.quantifiers.prenexQuant;
8942
return ss.str();
8943
}
8944
8
if (name == "purify-triggers") {
8945
return options.quantifiers.purifyTriggers ? "true" : "false";
8946
}
8947
8
if (name == "qcf-all-conflict") {
8948
return options.quantifiers.qcfAllConflict ? "true" : "false";
8949
}
8950
8
if (name == "qcf-eager-check-rd") {
8951
return options.quantifiers.qcfEagerCheckRd ? "true" : "false";
8952
}
8953
8
if (name == "qcf-eager-test") {
8954
return options.quantifiers.qcfEagerTest ? "true" : "false";
8955
}
8956
8
if (name == "qcf-nested-conflict") {
8957
return options.quantifiers.qcfNestedConflict ? "true" : "false";
8958
}
8959
8
if (name == "qcf-skip-rd") {
8960
return options.quantifiers.qcfSkipRd ? "true" : "false";
8961
}
8962
8
if (name == "qcf-tconstraint") {
8963
return options.quantifiers.qcfTConstraint ? "true" : "false";
8964
}
8965
8
if (name == "qcf-vo-exp") {
8966
return options.quantifiers.qcfVoExp ? "true" : "false";
8967
}
8968
8
if (name == "quant-alpha-equiv") {
8969
return options.quantifiers.quantAlphaEquiv ? "true" : "false";
8970
}
8971
8
if (name == "quant-cf") {
8972
return options.quantifiers.quantConflictFind ? "true" : "false";
8973
}
8974
8
if (name == "quant-cf-mode") {
8975
std::stringstream ss;
8976
ss << options.quantifiers.qcfMode;
8977
return ss.str();
8978
}
8979
8
if (name == "quant-cf-when") {
8980
std::stringstream ss;
8981
ss << options.quantifiers.qcfWhenMode;
8982
return ss.str();
8983
}
8984
8
if (name == "quant-dsplit-mode") {
8985
std::stringstream ss;
8986
ss << options.quantifiers.quantDynamicSplit;
8987
return ss.str();
8988
}
8989
8
if (name == "quant-fun-wd") {
8990
return options.quantifiers.quantFunWellDefined ? "true" : "false";
8991
}
8992
8
if (name == "quant-ind") {
8993
return options.quantifiers.quantInduction ? "true" : "false";
8994
}
8995
8
if (name == "quant-rep-mode") {
8996
std::stringstream ss;
8997
ss << options.quantifiers.quantRepMode;
8998
return ss.str();
8999
}
9000
8
if (name == "quant-split") {
9001
return options.quantifiers.quantSplit ? "true" : "false";
9002
}
9003
8
if (name == "register-quant-body-terms") {
9004
return options.quantifiers.registerQuantBodyTerms ? "true" : "false";
9005
}
9006
8
if (name == "relational-triggers") {
9007
return options.quantifiers.relationalTriggers ? "true" : "false";
9008
}
9009
8
if (name == "relevant-triggers") {
9010
return options.quantifiers.relevantTriggers ? "true" : "false";
9011
}
9012
8
if (name == "sygus") {
9013
return options.quantifiers.sygus ? "true" : "false";
9014
}
9015
8
if (name == "sygus-active-gen-cfactor") {
9016
return std::to_string(options.quantifiers.sygusActiveGenEnumConsts);
9017
}
9018
8
if (name == "sygus-active-gen") {
9019
std::stringstream ss;
9020
ss << options.quantifiers.sygusActiveGenMode;
9021
return ss.str();
9022
}
9023
8
if (name == "sygus-add-const-grammar") {
9024
return options.quantifiers.sygusAddConstGrammar ? "true" : "false";
9025
}
9026
8
if (name == "sygus-arg-relevant") {
9027
return options.quantifiers.sygusArgRelevant ? "true" : "false";
9028
}
9029
8
if (name == "sygus-auto-unfold") {
9030
return options.quantifiers.sygusInvAutoUnfold ? "true" : "false";
9031
}
9032
8
if (name == "sygus-bool-ite-return-const") {
9033
return options.quantifiers.sygusBoolIteReturnConst ? "true" : "false";
9034
}
9035
8
if (name == "sygus-core-connective") {
9036
return options.quantifiers.sygusCoreConnective ? "true" : "false";
9037
}
9038
8
if (name == "sygus-crepair-abort") {
9039
return options.quantifiers.sygusConstRepairAbort ? "true" : "false";
9040
}
9041
8
if (name == "sygus-eval-opt") {
9042
return options.quantifiers.sygusEvalOpt ? "true" : "false";
9043
}
9044
8
if (name == "sygus-eval-unfold") {
9045
return options.quantifiers.sygusEvalUnfold ? "true" : "false";
9046
}
9047
8
if (name == "sygus-eval-unfold-bool") {
9048
return options.quantifiers.sygusEvalUnfoldBool ? "true" : "false";
9049
}
9050
8
if (name == "sygus-expr-miner-check-timeout") {
9051
return std::to_string(options.quantifiers.sygusExprMinerCheckTimeout);
9052
}
9053
8
if (name == "sygus-ext-rew") {
9054
return options.quantifiers.sygusExtRew ? "true" : "false";
9055
}
9056
8
if (name == "sygus-filter-sol-rev") {
9057
return options.quantifiers.sygusFilterSolRevSubsume ? "true" : "false";
9058
}
9059
8
if (name == "sygus-filter-sol") {
9060
std::stringstream ss;
9061
ss << options.quantifiers.sygusFilterSolMode;
9062
return ss.str();
9063
}
9064
8
if (name == "sygus-grammar-cons") {
9065
std::stringstream ss;
9066
ss << options.quantifiers.sygusGrammarConsMode;
9067
return ss.str();
9068
}
9069
8
if (name == "sygus-grammar-norm") {
9070
return options.quantifiers.sygusGrammarNorm ? "true" : "false";
9071
}
9072
8
if (name == "sygus-inference") {
9073
return options.quantifiers.sygusInference ? "true" : "false";
9074
}
9075
8
if (name == "sygus-inst") {
9076
return options.quantifiers.sygusInst ? "true" : "false";
9077
}
9078
8
if (name == "sygus-inst-mode") {
9079
std::stringstream ss;
9080
ss << options.quantifiers.sygusInstMode;
9081
return ss.str();
9082
}
9083
8
if (name == "sygus-inst-scope") {
9084
std::stringstream ss;
9085
ss << options.quantifiers.sygusInstScope;
9086
return ss.str();
9087
}
9088
8
if (name == "sygus-inst-term-sel") {
9089
std::stringstream ss;
9090
ss << options.quantifiers.sygusInstTermSel;
9091
return ss.str();
9092
}
9093
8
if (name == "sygus-inv-templ-when-sg") {
9094
return options.quantifiers.sygusInvTemplWhenSyntax ? "true" : "false";
9095
}
9096
8
if (name == "sygus-inv-templ") {
9097
std::stringstream ss;
9098
ss << options.quantifiers.sygusInvTemplMode;
9099
return ss.str();
9100
}
9101
8
if (name == "sygus-min-grammar") {
9102
return options.quantifiers.sygusMinGrammar ? "true" : "false";
9103
}
9104
8
if (name == "sygus-pbe") {
9105
return options.quantifiers.sygusUnifPbe ? "true" : "false";
9106
}
9107
8
if (name == "sygus-pbe-multi-fair") {
9108
return options.quantifiers.sygusPbeMultiFair ? "true" : "false";
9109
}
9110
8
if (name == "sygus-pbe-multi-fair-diff") {
9111
return std::to_string(options.quantifiers.sygusPbeMultiFairDiff);
9112
}
9113
8
if (name == "sygus-qe-preproc") {
9114
return options.quantifiers.sygusQePreproc ? "true" : "false";
9115
}
9116
8
if (name == "sygus-query-gen") {
9117
return options.quantifiers.sygusQueryGen ? "true" : "false";
9118
}
9119
8
if (name == "sygus-query-gen-check") {
9120
return options.quantifiers.sygusQueryGenCheck ? "true" : "false";
9121
}
9122
8
if (name == "sygus-query-gen-dump-files") {
9123
std::stringstream ss;
9124
ss << options.quantifiers.sygusQueryGenDumpFiles;
9125
return ss.str();
9126
}
9127
8
if (name == "sygus-query-gen-thresh") {
9128
return std::to_string(options.quantifiers.sygusQueryGenThresh);
9129
}
9130
8
if (name == "sygus-rec-fun") {
9131
return options.quantifiers.sygusRecFun ? "true" : "false";
9132
}
9133
8
if (name == "sygus-rec-fun-eval-limit") {
9134
return std::to_string(options.quantifiers.sygusRecFunEvalLimit);
9135
}
9136
8
if (name == "sygus-repair-const") {
9137
return options.quantifiers.sygusRepairConst ? "true" : "false";
9138
}
9139
8
if (name == "sygus-repair-const-timeout") {
9140
return std::to_string(options.quantifiers.sygusRepairConstTimeout);
9141
}
9142
8
if (name == "sygus-rr") {
9143
return options.quantifiers.sygusRew ? "true" : "false";
9144
}
9145
8
if (name == "sygus-rr-synth") {
9146
return options.quantifiers.sygusRewSynth ? "true" : "false";
9147
}
9148
8
if (name == "sygus-rr-synth-accel") {
9149
return options.quantifiers.sygusRewSynthAccel ? "true" : "false";
9150
}
9151
8
if (name == "sygus-rr-synth-check") {
9152
return options.quantifiers.sygusRewSynthCheck ? "true" : "false";
9153
}
9154
8
if (name == "sygus-rr-synth-filter-cong") {
9155
return options.quantifiers.sygusRewSynthFilterCong ? "true" : "false";
9156
}
9157
8
if (name == "sygus-rr-synth-filter-match") {
9158
return options.quantifiers.sygusRewSynthFilterMatch ? "true" : "false";
9159
}
9160
8
if (name == "sygus-rr-synth-filter-nl") {
9161
return options.quantifiers.sygusRewSynthFilterNonLinear ? "true" : "false";
9162
}
9163
8
if (name == "sygus-rr-synth-filter-order") {
9164
return options.quantifiers.sygusRewSynthFilterOrder ? "true" : "false";
9165
}
9166
8
if (name == "sygus-rr-synth-input") {
9167
return options.quantifiers.sygusRewSynthInput ? "true" : "false";
9168
}
9169
8
if (name == "sygus-rr-synth-input-nvars") {
9170
return std::to_string(options.quantifiers.sygusRewSynthInputNVars);
9171
}
9172
8
if (name == "sygus-rr-synth-input-use-bool") {
9173
return options.quantifiers.sygusRewSynthInputUseBool ? "true" : "false";
9174
}
9175
8
if (name == "sygus-rr-synth-rec") {
9176
return options.quantifiers.sygusRewSynthRec ? "true" : "false";
9177
}
9178
8
if (name == "sygus-rr-verify") {
9179
return options.quantifiers.sygusRewVerify ? "true" : "false";
9180
}
9181
8
if (name == "sygus-rr-verify-abort") {
9182
return options.quantifiers.sygusRewVerifyAbort ? "true" : "false";
9183
}
9184
8
if (name == "sygus-sample-fp-uniform") {
9185
return options.quantifiers.sygusSampleFpUniform ? "true" : "false";
9186
}
9187
8
if (name == "sygus-sample-grammar") {
9188
return options.quantifiers.sygusSampleGrammar ? "true" : "false";
9189
}
9190
8
if (name == "sygus-samples") {
9191
return std::to_string(options.quantifiers.sygusSamples);
9192
}
9193
8
if (name == "sygus-si-abort") {
9194
return options.quantifiers.cegqiSingleInvAbort ? "true" : "false";
9195
}
9196
8
if (name == "sygus-si-partial") {
9197
return options.quantifiers.cegqiSingleInvPartial ? "true" : "false";
9198
}
9199
8
if (name == "sygus-si-rcons-limit") {
9200
return std::to_string(options.quantifiers.cegqiSingleInvReconstructLimit);
9201
}
9202
8
if (name == "sygus-si-rcons") {
9203
std::stringstream ss;
9204
ss << options.quantifiers.cegqiSingleInvReconstruct;
9205
return ss.str();
9206
}
9207
8
if (name == "sygus-si-reconstruct-const") {
9208
return options.quantifiers.cegqiSingleInvReconstructConst ? "true" : "false";
9209
}
9210
8
if (name == "sygus-si") {
9211
std::stringstream ss;
9212
ss << options.quantifiers.cegqiSingleInvMode;
9213
return ss.str();
9214
}
9215
8
if (name == "sygus-stream") {
9216
return options.quantifiers.sygusStream ? "true" : "false";
9217
}
9218
8
if (name == "sygus-templ-embed-grammar") {
9219
return options.quantifiers.sygusTemplEmbedGrammar ? "true" : "false";
9220
}
9221
8
if (name == "sygus-unif-cond-independent-no-repeat-sol") {
9222
return options.quantifiers.sygusUnifCondIndNoRepeatSol ? "true" : "false";
9223
}
9224
8
if (name == "sygus-unif-pi") {
9225
std::stringstream ss;
9226
ss << options.quantifiers.sygusUnifPi;
9227
return ss.str();
9228
}
9229
8
if (name == "sygus-unif-shuffle-cond") {
9230
return options.quantifiers.sygusUnifShuffleCond ? "true" : "false";
9231
}
9232
8
if (name == "sygus-verify-inst-max-rounds") {
9233
return std::to_string(options.quantifiers.sygusVerifyInstMaxRounds);
9234
}
9235
8
if (name == "term-db-cd") {
9236
return options.quantifiers.termDbCd ? "true" : "false";
9237
}
9238
8
if (name == "term-db-mode") {
9239
std::stringstream ss;
9240
ss << options.quantifiers.termDbMode;
9241
return ss.str();
9242
}
9243
8
if (name == "trigger-active-sel") {
9244
std::stringstream ss;
9245
ss << options.quantifiers.triggerActiveSelMode;
9246
return ss.str();
9247
}
9248
8
if (name == "trigger-sel") {
9249
std::stringstream ss;
9250
ss << options.quantifiers.triggerSelMode;
9251
return ss.str();
9252
}
9253
8
if (name == "user-pat") {
9254
std::stringstream ss;
9255
ss << options.quantifiers.userPatternsQuant;
9256
return ss.str();
9257
}
9258
8
if (name == "var-elim-quant") {
9259
return options.quantifiers.varElimQuant ? "true" : "false";
9260
}
9261
8
if (name == "var-ineq-elim-quant") {
9262
return options.quantifiers.varIneqElimQuant ? "true" : "false";
9263
}
9264
8
if (name == "sep-check-neg") {
9265
return options.sep.sepCheckNeg ? "true" : "false";
9266
}
9267
8
if (name == "sep-child-refine") {
9268
return options.sep.sepChildRefine ? "true" : "false";
9269
}
9270
8
if (name == "sep-deq-c") {
9271
return options.sep.sepDisequalC ? "true" : "false";
9272
}
9273
8
if (name == "sep-exp") {
9274
return options.sep.sepExp ? "true" : "false";
9275
}
9276
8
if (name == "sep-min-refine") {
9277
return options.sep.sepMinimalRefine ? "true" : "false";
9278
}
9279
8
if (name == "sep-pre-skolem-emp") {
9280
return options.sep.sepPreSkolemEmp ? "true" : "false";
9281
}
9282
8
if (name == "sets-ext") {
9283
return options.sets.setsExt ? "true" : "false";
9284
}
9285
8
if (name == "sets-infer-as-lemmas") {
9286
return options.sets.setsInferAsLemmas ? "true" : "false";
9287
}
9288
8
if (name == "sets-proxy-lemmas") {
9289
return options.sets.setsProxyLemmas ? "true" : "false";
9290
}
9291
8
if (name == "abstract-values") {
9292
return options.smt.abstractValues ? "true" : "false";
9293
}
9294
8
if (name == "ackermann") {
9295
return options.smt.ackermann ? "true" : "false";
9296
}
9297
8
if (name == "block-models") {
9298
std::stringstream ss;
9299
ss << options.smt.blockModelsMode;
9300
return ss.str();
9301
}
9302
8
if (name == "bvand-integer-granularity") {
9303
return std::to_string(options.smt.BVAndIntegerGranularity);
9304
}
9305
8
if (name == "check-abducts") {
9306
return options.smt.checkAbducts ? "true" : "false";
9307
}
9308
8
if (name == "check-interpols") {
9309
return options.smt.checkInterpols ? "true" : "false";
9310
}
9311
8
if (name == "check-models") {
9312
2
return options.smt.checkModels ? "true" : "false";
9313
}
9314
6
if (name == "check-proofs") {
9315
return options.smt.checkProofs ? "true" : "false";
9316
}
9317
6
if (name == "check-synth-sol") {
9318
return options.smt.checkSynthSol ? "true" : "false";
9319
}
9320
6
if (name == "check-unsat-cores") {
9321
return options.smt.checkUnsatCores ? "true" : "false";
9322
}
9323
6
if (name == "debug-check-models") {
9324
return options.smt.debugCheckModels ? "true" : "false";
9325
}
9326
6
if (name == "dump-to") {
9327
std::stringstream ss;
9328
ss << options.smt.dumpToFileName;
9329
return ss.str();
9330
}
9331
6
if (name == "dump") {
9332
return options.smt.dumpModeString;
9333
}
9334
6
if (name == "early-ite-removal") {
9335
return options.smt.earlyIteRemoval ? "true" : "false";
9336
}
9337
6
if (name == "expand-definitions") {
9338
return options.smt.expandDefinitions ? "true" : "false";
9339
}
9340
6
if (name == "ext-rew-prep") {
9341
return options.smt.extRewPrep ? "true" : "false";
9342
}
9343
6
if (name == "ext-rew-prep-agg") {
9344
return options.smt.extRewPrepAgg ? "true" : "false";
9345
}
9346
6
if (name == "foreign-theory-rewrite") {
9347
return options.smt.foreignTheoryRewrite ? "true" : "false";
9348
}
9349
6
if (name == "iand-mode") {
9350
std::stringstream ss;
9351
ss << options.smt.iandMode;
9352
return ss.str();
9353
}
9354
6
if (name == "interactive-mode") {
9355
return options.smt.interactiveMode ? "true" : "false";
9356
}
9357
6
if (name == "ite-simp") {
9358
return options.smt.doITESimp ? "true" : "false";
9359
}
9360
6
if (name == "learned-rewrite") {
9361
return options.smt.learnedRewrite ? "true" : "false";
9362
}
9363
6
if (name == "minimal-unsat-cores") {
9364
return options.smt.minimalUnsatCores ? "true" : "false";
9365
}
9366
6
if (name == "model-cores") {
9367
std::stringstream ss;
9368
ss << options.smt.modelCoresMode;
9369
return ss.str();
9370
}
9371
6
if (name == "model-u-print" || name == "model-uninterp-print") {
9372
std::stringstream ss;
9373
ss << options.smt.modelUninterpPrint;
9374
return ss.str();
9375
}
9376
6
if (name == "model-witness-value") {
9377
return options.smt.modelWitnessValue ? "true" : "false";
9378
}
9379
6
if (name == "on-repeat-ite-simp") {
9380
return options.smt.doITESimpOnRepeat ? "true" : "false";
9381
}
9382
6
if (name == "produce-abducts") {
9383
return options.smt.produceAbducts ? "true" : "false";
9384
}
9385
6
if (name == "produce-assertions") {
9386
return options.smt.produceAssertions ? "true" : "false";
9387
}
9388
6
if (name == "produce-assignments") {
9389
return options.smt.produceAssignments ? "true" : "false";
9390
}
9391
6
if (name == "produce-interpols") {
9392
std::stringstream ss;
9393
ss << options.smt.produceInterpols;
9394
return ss.str();
9395
}
9396
6
if (name == "produce-models") {
9397
3
return options.smt.produceModels ? "true" : "false";
9398
}
9399
3
if (name == "produce-proofs") {
9400
return options.smt.produceProofs ? "true" : "false";
9401
}
9402
3
if (name == "produce-unsat-assumptions") {
9403
return options.smt.unsatAssumptions ? "true" : "false";
9404
}
9405
3
if (name == "produce-unsat-cores") {
9406
return options.smt.unsatCores ? "true" : "false";
9407
}
9408
3
if (name == "repeat-simp") {
9409
return options.smt.repeatSimp ? "true" : "false";
9410
}
9411
3
if (name == "simp-ite-compress") {
9412
return options.smt.compressItes ? "true" : "false";
9413
}
9414
3
if (name == "simp-ite-hunt-zombies") {
9415
return std::to_string(options.smt.zombieHuntThreshold);
9416
}
9417
3
if (name == "simp-with-care") {
9418
return options.smt.simplifyWithCareEnabled ? "true" : "false";
9419
}
9420
3
if (name == "simplification" || name == "simplification-mode") {
9421
2
std::stringstream ss;
9422
1
ss << options.smt.simplificationMode;
9423
1
return ss.str();
9424
}
9425
2
if (name == "solve-bv-as-int") {
9426
std::stringstream ss;
9427
ss << options.smt.solveBVAsInt;
9428
return ss.str();
9429
}
9430
2
if (name == "solve-int-as-bv") {
9431
return std::to_string(options.smt.solveIntAsBV);
9432
}
9433
2
if (name == "solve-real-as-int") {
9434
return options.smt.solveRealAsInt ? "true" : "false";
9435
}
9436
2
if (name == "sort-inference") {
9437
return options.smt.sortInference ? "true" : "false";
9438
}
9439
2
if (name == "static-learning") {
9440
return options.smt.doStaticLearning ? "true" : "false";
9441
}
9442
2
if (name == "sygus-out") {
9443
std::stringstream ss;
9444
ss << options.smt.sygusOut;
9445
return ss.str();
9446
}
9447
2
if (name == "sygus-print-callbacks") {
9448
return options.smt.sygusPrintCallbacks ? "true" : "false";
9449
}
9450
2
if (name == "unconstrained-simp") {
9451
return options.smt.unconstrainedSimp ? "true" : "false";
9452
}
9453
2
if (name == "unsat-cores-mode") {
9454
std::stringstream ss;
9455
ss << options.smt.unsatCoresMode;
9456
return ss.str();
9457
}
9458
2
if (name == "re-elim") {
9459
return options.strings.regExpElim ? "true" : "false";
9460
}
9461
2
if (name == "re-elim-agg") {
9462
return options.strings.regExpElimAgg ? "true" : "false";
9463
}
9464
2
if (name == "re-inter-mode") {
9465
std::stringstream ss;
9466
ss << options.strings.stringRegExpInterMode;
9467
return ss.str();
9468
}
9469
2
if (name == "strings-check-entail-len") {
9470
return options.strings.stringCheckEntailLen ? "true" : "false";
9471
}
9472
2
if (name == "strings-eager") {
9473
return options.strings.stringEager ? "true" : "false";
9474
}
9475
2
if (name == "strings-eager-eval") {
9476
return options.strings.stringEagerEval ? "true" : "false";
9477
}
9478
2
if (name == "strings-eager-len") {
9479
return options.strings.stringEagerLen ? "true" : "false";
9480
}
9481
2
if (name == "strings-exp") {
9482
return options.strings.stringExp ? "true" : "false";
9483
}
9484
2
if (name == "strings-ff") {
9485
return options.strings.stringFlatForms ? "true" : "false";
9486
}
9487
2
if (name == "strings-fmf") {
9488
return options.strings.stringFMF ? "true" : "false";
9489
}
9490
2
if (name == "strings-guess-model") {
9491
return options.strings.stringGuessModel ? "true" : "false";
9492
}
9493
2
if (name == "strings-infer-as-lemmas") {
9494
return options.strings.stringInferAsLemmas ? "true" : "false";
9495
}
9496
2
if (name == "strings-infer-sym") {
9497
return options.strings.stringInferSym ? "true" : "false";
9498
}
9499
2
if (name == "strings-lazy-pp") {
9500
return options.strings.stringLazyPreproc ? "true" : "false";
9501
}
9502
2
if (name == "strings-len-norm") {
9503
return options.strings.stringLenNorm ? "true" : "false";
9504
}
9505
2
if (name == "strings-lprop-csp") {
9506
return options.strings.stringLenPropCsp ? "true" : "false";
9507
}
9508
2
if (name == "strings-min-prefix-explain") {
9509
return options.strings.stringMinPrefixExplain ? "true" : "false";
9510
}
9511
2
if (name == "strings-process-loop-mode") {
9512
std::stringstream ss;
9513
ss << options.strings.stringProcessLoopMode;
9514
return ss.str();
9515
}
9516
2
if (name == "strings-rexplain-lemmas") {
9517
return options.strings.stringRExplainLemmas ? "true" : "false";
9518
}
9519
2
if (name == "strings-unified-vspt") {
9520
return options.strings.stringUnifiedVSpt ? "true" : "false";
9521
}
9522
2
if (name == "assign-function-values") {
9523
return options.theory.assignFunctionValues ? "true" : "false";
9524
}
9525
2
if (name == "condense-function-values") {
9526
return options.theory.condenseFunctionValues ? "true" : "false";
9527
}
9528
2
if (name == "ee-mode") {
9529
std::stringstream ss;
9530
ss << options.theory.eeMode;
9531
return ss.str();
9532
}
9533
2
if (name == "relevance-filter") {
9534
return options.theory.relevanceFilter ? "true" : "false";
9535
}
9536
2
if (name == "tc-mode") {
9537
std::stringstream ss;
9538
ss << options.theory.tcMode;
9539
return ss.str();
9540
}
9541
2
if (name == "theoryof-mode") {
9542
std::stringstream ss;
9543
ss << options.theory.theoryOfMode;
9544
return ss.str();
9545
}
9546
2
if (name == "symmetry-breaker" || name == "uf-symmetry-breaker") {
9547
return options.uf.ufSymmetryBreaker ? "true" : "false";
9548
}
9549
2
if (name == "uf-ho") {
9550
return options.uf.ufHo ? "true" : "false";
9551
}
9552
2
if (name == "uf-ho-ext") {
9553
return options.uf.ufHoExt ? "true" : "false";
9554
}
9555
2
if (name == "uf-ss-abort-card") {
9556
return std::to_string(options.uf.ufssAbortCardinality);
9557
}
9558
2
if (name == "uf-ss-fair") {
9559
return options.uf.ufssFairness ? "true" : "false";
9560
}
9561
2
if (name == "uf-ss-fair-monotone") {
9562
return options.uf.ufssFairnessMonotone ? "true" : "false";
9563
}
9564
2
if (name == "uf-ss-totality-limited") {
9565
return std::to_string(options.uf.ufssTotalityLimited);
9566
}
9567
2
if (name == "uf-ss-totality-sym-break") {
9568
return options.uf.ufssTotalitySymBreak ? "true" : "false";
9569
}
9570
2
if (name == "uf-ss") {
9571
std::stringstream ss;
9572
ss << options.uf.ufssMode;
9573
return ss.str();
9574
}
9575
9576
2
  throw UnrecognizedOptionException(name);
9577
}
9578
9579
9569
void setInternal(Options& opts, const std::string& name,
9580
                                const std::string& optionarg)
9581
                                {
9582
9569
  if (name == "approx-branch-depth") {
9583
    assign_arith_maxApproxDepth(opts, name, optionarg);
9584
    return;
9585
  }
9586
9569
  if (name == "arith-brab") {
9587
    assign_arith_brabTest(opts, name, optionarg == "true");
9588
    return;
9589
  }
9590
9569
  if (name == "arith-cong-man") {
9591
    assign_arith_arithCongMan(opts, name, optionarg == "true");
9592
    return;
9593
  }
9594
9569
  if (name == "arith-eq-solver") {
9595
    assign_arith_arithEqSolver(opts, name, optionarg == "true");
9596
    return;
9597
  }
9598
9569
  if (name == "arith-no-partial-fun") {
9599
3
    assign_arith_arithNoPartialFun(opts, name, optionarg == "true");
9600
3
    return;
9601
  }
9602
9566
  if (name == "arith-prop-clauses") {
9603
    assign_arith_arithPropAsLemmaLength(opts, name, optionarg);
9604
    return;
9605
  }
9606
9566
  if (name == "arith-prop") {
9607
    assign_arith_arithPropagationMode(opts, name, optionarg);
9608
    return;
9609
  }
9610
9566
  if (name == "arith-rewrite-equalities") {
9611
5
    assign_arith_arithRewriteEq(opts, name, optionarg == "true");
9612
5
    return;
9613
  }
9614
9561
  if (name == "collect-pivot-stats") {
9615
    assign_arith_collectPivots(opts, name, optionarg == "true");
9616
    return;
9617
  }
9618
9561
  if (name == "cut-all-bounded") {
9619
    assign_arith_doCutAllBounded(opts, name, optionarg == "true");
9620
    return;
9621
  }
9622
9561
  if (name == "dio-decomps") {
9623
    assign_arith_exportDioDecompositions(opts, name, optionarg == "true");
9624
    return;
9625
  }
9626
9561
  if (name == "dio-repeat") {
9627
    assign_arith_dioRepeat(opts, name, optionarg == "true");
9628
    return;
9629
  }
9630
9561
  if (name == "dio-solver") {
9631
    assign_arith_arithDioSolver(opts, name, optionarg == "true");
9632
    return;
9633
  }
9634
9561
  if (name == "dio-turns") {
9635
    assign_arith_dioSolverTurns(opts, name, optionarg);
9636
    return;
9637
  }
9638
9561
  if (name == "error-selection-rule") {
9639
    assign_arith_arithErrorSelectionRule(opts, name, optionarg);
9640
    return;
9641
  }
9642
9561
  if (name == "fc-penalties") {
9643
    assign_arith_havePenalties(opts, name, optionarg == "true");
9644
    return;
9645
  }
9646
9561
  if (name == "heuristic-pivots") {
9647
    assign_arith_arithHeuristicPivots(opts, name, optionarg);
9648
    return;
9649
  }
9650
9561
  if (name == "lemmas-on-replay-failure") {
9651
    assign_arith_replayFailureLemma(opts, name, optionarg == "true");
9652
    return;
9653
  }
9654
9561
  if (name == "maxCutsInContext") {
9655
    assign_arith_maxCutsInContext(opts, name, optionarg);
9656
    return;
9657
  }
9658
9561
  if (name == "miplib-trick") {
9659
    assign_arith_arithMLTrick(opts, name, optionarg == "true");
9660
    return;
9661
  }
9662
9561
  if (name == "miplib-trick-subs") {
9663
    assign_arith_arithMLTrickSubstitutions(opts, name, optionarg);
9664
    return;
9665
  }
9666
9561
  if (name == "new-prop") {
9667
    assign_arith_newProp(opts, name, optionarg == "true");
9668
    return;
9669
  }
9670
9561
  if (name == "nl-cad") {
9671
    assign_arith_nlCad(opts, name, optionarg == "true");
9672
    return;
9673
  }
9674
9561
  if (name == "nl-cad-initial") {
9675
    assign_arith_nlCadUseInitial(opts, name, optionarg == "true");
9676
    return;
9677
  }
9678
9561
  if (name == "nl-cad-lift") {
9679
    assign_arith_nlCadLifting(opts, name, optionarg);
9680
    return;
9681
  }
9682
9561
  if (name == "nl-cad-proj") {
9683
    assign_arith_nlCadProjection(opts, name, optionarg);
9684
    return;
9685
  }
9686
9561
  if (name == "nl-ext-ent-conf") {
9687
    assign_arith_nlExtEntailConflicts(opts, name, optionarg == "true");
9688
    return;
9689
  }
9690
9561
  if (name == "nl-ext-factor") {
9691
    assign_arith_nlExtFactor(opts, name, optionarg == "true");
9692
    return;
9693
  }
9694
9561
  if (name == "nl-ext-inc-prec") {
9695
    assign_arith_nlExtIncPrecision(opts, name, optionarg == "true");
9696
    return;
9697
  }
9698
9561
  if (name == "nl-ext-purify") {
9699
2
    assign_arith_nlExtPurify(opts, name, optionarg == "true");
9700
2
    return;
9701
  }
9702
9559
  if (name == "nl-ext-rbound") {
9703
    assign_arith_nlExtResBound(opts, name, optionarg == "true");
9704
    return;
9705
  }
9706
9559
  if (name == "nl-ext-rewrite") {
9707
    assign_arith_nlExtRewrites(opts, name, optionarg == "true");
9708
    return;
9709
  }
9710
9559
  if (name == "nl-ext-split-zero") {
9711
    assign_arith_nlExtSplitZero(opts, name, optionarg == "true");
9712
    return;
9713
  }
9714
9559
  if (name == "nl-ext-tf-taylor-deg") {
9715
    assign_arith_nlExtTfTaylorDegree(opts, name, optionarg);
9716
    return;
9717
  }
9718
9559
  if (name == "nl-ext-tf-tplanes") {
9719
    assign_arith_nlExtTfTangentPlanes(opts, name, optionarg == "true");
9720
    return;
9721
  }
9722
9559
  if (name == "nl-ext-tplanes") {
9723
    assign_arith_nlExtTangentPlanes(opts, name, optionarg == "true");
9724
    return;
9725
  }
9726
9559
  if (name == "nl-ext-tplanes-interleave") {
9727
    assign_arith_nlExtTangentPlanesInterleave(opts, name, optionarg == "true");
9728
    return;
9729
  }
9730
9559
  if (name == "nl-ext") {
9731
    assign_arith_nlExt(opts, name, optionarg);
9732
    return;
9733
  }
9734
9559
  if (name == "nl-icp") {
9735
    assign_arith_nlICP(opts, name, optionarg == "true");
9736
    return;
9737
  }
9738
9559
  if (name == "nl-rlv") {
9739
    assign_arith_nlRlvMode(opts, name, optionarg);
9740
    return;
9741
  }
9742
9559
  if (name == "pb-rewrites") {
9743
    assign_arith_pbRewrites(opts, name, optionarg == "true");
9744
    return;
9745
  }
9746
9559
  if (name == "pivot-threshold") {
9747
    assign_arith_arithPivotThreshold(opts, name, optionarg);
9748
    return;
9749
  }
9750
9559
  if (name == "pp-assert-max-sub-size") {
9751
    assign_arith_ppAssertMaxSubSize(opts, name, optionarg);
9752
    return;
9753
  }
9754
9559
  if (name == "prop-row-length") {
9755
    assign_arith_arithPropagateMaxLength(opts, name, optionarg);
9756
    return;
9757
  }
9758
9559
  if (name == "replay-early-close-depth") {
9759
    assign_arith_replayEarlyCloseDepths(opts, name, optionarg);
9760
    return;
9761
  }
9762
9559
  if (name == "replay-failure-penalty") {
9763
    assign_arith_replayFailurePenalty(opts, name, optionarg);
9764
    return;
9765
  }
9766
9559
  if (name == "replay-lemma-reject-cut") {
9767
    assign_arith_lemmaRejectCutSize(opts, name, optionarg);
9768
    return;
9769
  }
9770
9559
  if (name == "replay-num-err-penalty") {
9771
    assign_arith_replayNumericFailurePenalty(opts, name, optionarg);
9772
    return;
9773
  }
9774
9559
  if (name == "replay-reject-cut") {
9775
    assign_arith_replayRejectCutSize(opts, name, optionarg);
9776
    return;
9777
  }
9778
9559
  if (name == "replay-soi-major-threshold-pen") {
9779
    assign_arith_soiApproxMajorFailurePen(opts, name, optionarg);
9780
    return;
9781
  }
9782
9559
  if (name == "replay-soi-major-threshold") {
9783
    assign_arith_soiApproxMajorFailure(opts, name, optionarg);
9784
    return;
9785
  }
9786
9559
  if (name == "replay-soi-minor-threshold-pen") {
9787
    assign_arith_soiApproxMinorFailurePen(opts, name, optionarg);
9788
    return;
9789
  }
9790
9559
  if (name == "replay-soi-minor-threshold") {
9791
    assign_arith_soiApproxMinorFailure(opts, name, optionarg);
9792
    return;
9793
  }
9794
9559
  if (name == "restrict-pivots") {
9795
    assign_arith_restrictedPivots(opts, name, optionarg == "true");
9796
    return;
9797
  }
9798
9559
  if (name == "revert-arith-models-on-unsat") {
9799
    assign_arith_revertArithModels(opts, name, optionarg == "true");
9800
    return;
9801
  }
9802
9559
  if (name == "rr-turns") {
9803
    assign_arith_rrTurns(opts, name, optionarg);
9804
    return;
9805
  }
9806
9559
  if (name == "se-solve-int") {
9807
    assign_arith_trySolveIntStandardEffort(opts, name, optionarg == "true");
9808
    return;
9809
  }
9810
9559
  if (name == "simplex-check-period") {
9811
    assign_arith_arithSimplexCheckPeriod(opts, name, optionarg);
9812
    return;
9813
  }
9814
9559
  if (name == "soi-qe") {
9815
    assign_arith_soiQuickExplain(opts, name, optionarg == "true");
9816
    return;
9817
  }
9818
9559
  if (name == "standard-effort-variable-order-pivots") {
9819
    assign_arith_arithStandardCheckVarOrderPivots(opts, name, optionarg);
9820
    return;
9821
  }
9822
9559
  if (name == "unate-lemmas") {
9823
    assign_arith_arithUnateLemmaMode(opts, name, optionarg);
9824
    return;
9825
  }
9826
9559
  if (name == "use-approx") {
9827
    assign_arith_useApprox(opts, name, optionarg == "true");
9828
    return;
9829
  }
9830
9559
  if (name == "use-fcsimplex") {
9831
    assign_arith_useFC(opts, name, optionarg == "true");
9832
    return;
9833
  }
9834
9559
  if (name == "use-soi") {
9835
    assign_arith_useSOI(opts, name, optionarg == "true");
9836
    return;
9837
  }
9838
9559
  if (name == "arrays-config") {
9839
    assign_arrays_arraysConfig(opts, name, optionarg);
9840
    return;
9841
  }
9842
9559
  if (name == "arrays-eager-index") {
9843
    assign_arrays_arraysEagerIndexSplitting(opts, name, optionarg == "true");
9844
    return;
9845
  }
9846
9559
  if (name == "arrays-eager-lemmas") {
9847
    assign_arrays_arraysEagerLemmas(opts, name, optionarg == "true");
9848
    return;
9849
  }
9850
9559
  if (name == "arrays-exp") {
9851
7
    assign_arrays_arraysExp(opts, name, optionarg == "true");
9852
7
    return;
9853
  }
9854
9552
  if (name == "arrays-model-based") {
9855
    assign_arrays_arraysModelBased(opts, name, optionarg == "true");
9856
    return;
9857
  }
9858
9552
  if (name == "arrays-optimize-linear") {
9859
    assign_arrays_arraysOptimizeLinear(opts, name, optionarg == "true");
9860
    return;
9861
  }
9862
9552
  if (name == "arrays-prop") {
9863
    assign_arrays_arraysPropagate(opts, name, optionarg);
9864
    return;
9865
  }
9866
9552
  if (name == "arrays-reduce-sharing") {
9867
    assign_arrays_arraysReduceSharing(opts, name, optionarg == "true");
9868
    return;
9869
  }
9870
9552
  if (name == "arrays-weak-equiv") {
9871
    assign_arrays_arraysWeakEquivalence(opts, name, optionarg == "true");
9872
    return;
9873
  }
9874
9552
  if (name == "debug") {
9875
    opts.handler().enableDebugTag("debug", name, optionarg);
9876
    return;
9877
  }
9878
9552
  if (name == "diagnostic-output-channel" || name == "err") {
9879
    assign_base_err(opts, name, optionarg);
9880
    return;
9881
  }
9882
9552
  if (name == "in") {
9883
    assign_base_in(opts, name, optionarg);
9884
    return;
9885
  }
9886
9552
  if (name == "incremental") {
9887
6622
    assign_base_incrementalSolving(opts, name, optionarg == "true");
9888
6622
    return;
9889
  }
9890
2930
  if (name == "input-language" || name == "lang") {
9891
297
    assign_base_inputLanguage(opts, name, optionarg);
9892
297
    return;
9893
  }
9894
2633
  if (name == "out" || name == "regular-output-channel") {
9895
    assign_base_out(opts, name, optionarg);
9896
    return;
9897
  }
9898
2633
  if (name == "output-lang" || name == "output-language") {
9899
26
    assign_base_outputLanguage(opts, name, optionarg);
9900
26
    return;
9901
  }
9902
2607
  if (name == "output") {
9903
    opts.handler().enableOutputTag("output", name, optionarg);
9904
    return;
9905
  }
9906
2607
  if (name == "parse-only") {
9907
16
    assign_base_parseOnly(opts, name, optionarg == "true");
9908
16
    return;
9909
  }
9910
2591
  if (name == "preprocess-only") {
9911
    assign_base_preprocessOnly(opts, name, optionarg == "true");
9912
    return;
9913
  }
9914
2591
  if (name == "print-success") {
9915
28
    assign_base_printSuccess(opts, name, optionarg == "true");
9916
28
    return;
9917
  }
9918
2563
  if (name == "quiet") {
9919
4
    opts.handler().decreaseVerbosity("quiet", name);
9920
4
    return;
9921
  }
9922
2559
  if (name == "reproducible-resource-limit" || name == "rlimit-per") {
9923
    assign_base_perCallResourceLimit(opts, name, optionarg);
9924
    return;
9925
  }
9926
2559
  if (name == "rlimit") {
9927
    assign_base_cumulativeResourceLimit(opts, name, optionarg);
9928
    return;
9929
  }
9930
2559
  if (name == "rweight") {
9931
    opts.handler().setResourceWeight("rweight", name, optionarg);
9932
    return;
9933
  }
9934
2559
  if (name == "stats") {
9935
2
    assign_base_statistics(opts, name, optionarg == "true");
9936
2
    return;
9937
  }
9938
2557
  if (name == "stats-all") {
9939
1
    assign_base_statisticsAll(opts, name, optionarg == "true");
9940
1
    return;
9941
  }
9942
2556
  if (name == "stats-every-query") {
9943
    assign_base_statisticsEveryQuery(opts, name, optionarg == "true");
9944
    return;
9945
  }
9946
2556
  if (name == "stats-expert") {
9947
1
    assign_base_statisticsExpert(opts, name, optionarg == "true");
9948
1
    return;
9949
  }
9950
2555
  if (name == "tlimit-per") {
9951
    assign_base_perCallMillisecondLimit(opts, name, optionarg);
9952
    return;
9953
  }
9954
2555
  if (name == "tlimit") {
9955
    assign_base_cumulativeMillisecondLimit(opts, name, optionarg);
9956
    return;
9957
  }
9958
2555
  if (name == "trace") {
9959
    opts.handler().enableTraceTag("trace", name, optionarg);
9960
    return;
9961
  }
9962
2555
  if (name == "verbose") {
9963
    opts.handler().increaseVerbosity("verbose", name);
9964
    return;
9965
  }
9966
2555
  if (name == "verbosity") {
9967
6
    assign_base_verbosity(opts, name, optionarg);
9968
6
    return;
9969
  }
9970
2549
  if (name == "bitblast-aig") {
9971
    assign_bv_bitvectorAig(opts, name, optionarg == "true");
9972
    return;
9973
  }
9974
2549
  if (name == "bitblast") {
9975
2
    assign_bv_bitblastMode(opts, name, optionarg);
9976
2
    return;
9977
  }
9978
2547
  if (name == "bitwise-eq") {
9979
    assign_bv_bitwiseEq(opts, name, optionarg == "true");
9980
    return;
9981
  }
9982
2547
  if (name == "bool-to-bv") {
9983
    assign_bv_boolToBitvector(opts, name, optionarg);
9984
    return;
9985
  }
9986
2547
  if (name == "bv-abstraction") {
9987
    assign_bv_bvAbstraction(opts, name, optionarg == "true");
9988
    return;
9989
  }
9990
2547
  if (name == "bv-aig-simp") {
9991
    assign_bv_bitvectorAigSimplifications(opts, name, optionarg);
9992
    return;
9993
  }
9994
2547
  if (name == "bv-alg-extf") {
9995
    assign_bv_bvAlgExtf(opts, name, optionarg == "true");
9996
    return;
9997
  }
9998
2547
  if (name == "bv-algebraic-budget") {
9999
    assign_bv_bitvectorAlgebraicBudget(opts, name, optionarg);
10000
    return;
10001
  }
10002
2547
  if (name == "bv-algebraic-solver") {
10003
    assign_bv_bitvectorAlgebraicSolver(opts, name, optionarg == "true");
10004
    return;
10005
  }
10006
2547
  if (name == "bv-assert-input") {
10007
    assign_bv_bvAssertInput(opts, name, optionarg == "true");
10008
    return;
10009
  }
10010
2547
  if (name == "bv-eager-explanations") {
10011
    assign_bv_bvEagerExplanations(opts, name, optionarg == "true");
10012
    return;
10013
  }
10014
2547
  if (name == "bv-eq-solver") {
10015
    assign_bv_bitvectorEqualitySolver(opts, name, optionarg == "true");
10016
    return;
10017
  }
10018
2547
  if (name == "bv-extract-arith") {
10019
    assign_bv_bvExtractArithRewrite(opts, name, optionarg == "true");
10020
    return;
10021
  }
10022
2547
  if (name == "bv-gauss-elim") {
10023
    assign_bv_bvGaussElim(opts, name, optionarg == "true");
10024
    return;
10025
  }
10026
2547
  if (name == "bv-inequality-solver") {
10027
    assign_bv_bitvectorInequalitySolver(opts, name, optionarg == "true");
10028
    return;
10029
  }
10030
2547
  if (name == "bv-intro-pow2") {
10031
    assign_bv_bvIntroducePow2(opts, name, optionarg == "true");
10032
    return;
10033
  }
10034
2547
  if (name == "bv-num-func") {
10035
    assign_bv_bvNumFunc(opts, name, optionarg);
10036
    return;
10037
  }
10038
2547
  if (name == "bv-print-consts-as-indexed-symbols") {
10039
    assign_bv_bvPrintConstsAsIndexedSymbols(opts, name, optionarg == "true");
10040
    return;
10041
  }
10042
2547
  if (name == "bv-propagate") {
10043
    assign_bv_bitvectorPropagate(opts, name, optionarg == "true");
10044
    return;
10045
  }
10046
2547
  if (name == "bv-quick-xplain") {
10047
    assign_bv_bitvectorQuickXplain(opts, name, optionarg == "true");
10048
    return;
10049
  }
10050
2547
  if (name == "bv-sat-solver") {
10051
4
    assign_bv_bvSatSolver(opts, name, optionarg);
10052
2
    return;
10053
  }
10054
2543
  if (name == "bv-skolemize") {
10055
    assign_bv_skolemizeArguments(opts, name, optionarg == "true");
10056
    return;
10057
  }
10058
2543
  if (name == "bv-solver") {
10059
2
    assign_bv_bvSolver(opts, name, optionarg);
10060
2
    return;
10061
  }
10062
2541
  if (name == "bv-to-bool") {
10063
    assign_bv_bitvectorToBool(opts, name, optionarg == "true");
10064
    return;
10065
  }
10066
2541
  if (name == "cdt-bisimilar") {
10067
    assign_datatypes_cdtBisimilar(opts, name, optionarg == "true");
10068
    return;
10069
  }
10070
2541
  if (name == "dt-binary-split") {
10071
    assign_datatypes_dtBinarySplit(opts, name, optionarg == "true");
10072
    return;
10073
  }
10074
2541
  if (name == "dt-blast-splits") {
10075
    assign_datatypes_dtBlastSplits(opts, name, optionarg == "true");
10076
    return;
10077
  }
10078
2541
  if (name == "dt-cyclic") {
10079
    assign_datatypes_dtCyclic(opts, name, optionarg == "true");
10080
    return;
10081
  }
10082
2541
  if (name == "dt-force-assignment") {
10083
    assign_datatypes_dtForceAssignment(opts, name, optionarg == "true");
10084
    return;
10085
  }
10086
2541
  if (name == "dt-infer-as-lemmas") {
10087
    assign_datatypes_dtInferAsLemmas(opts, name, optionarg == "true");
10088
    return;
10089
  }
10090
2541
  if (name == "dt-nested-rec") {
10091
    assign_datatypes_dtNestedRec(opts, name, optionarg == "true");
10092
    return;
10093
  }
10094
2541
  if (name == "dt-polite-optimize") {
10095
    assign_datatypes_dtPoliteOptimize(opts, name, optionarg == "true");
10096
    return;
10097
  }
10098
2541
  if (name == "dt-rewrite-error-sel") {
10099
    assign_datatypes_dtRewriteErrorSel(opts, name, optionarg == "true");
10100
    return;
10101
  }
10102
2541
  if (name == "dt-share-sel") {
10103
    assign_datatypes_dtSharedSelectors(opts, name, optionarg == "true");
10104
    return;
10105
  }
10106
2541
  if (name == "sygus-abort-size") {
10107
    assign_datatypes_sygusAbortSize(opts, name, optionarg);
10108
    return;
10109
  }
10110
2541
  if (name == "sygus-fair-max") {
10111
    assign_datatypes_sygusFairMax(opts, name, optionarg == "true");
10112
    return;
10113
  }
10114
2541
  if (name == "sygus-fair") {
10115
    assign_datatypes_sygusFair(opts, name, optionarg);
10116
    return;
10117
  }
10118
2541
  if (name == "sygus-sym-break") {
10119
2
    assign_datatypes_sygusSymBreak(opts, name, optionarg == "true");
10120
2
    return;
10121
  }
10122
2539
  if (name == "sygus-sym-break-agg") {
10123
    assign_datatypes_sygusSymBreakAgg(opts, name, optionarg == "true");
10124
    return;
10125
  }
10126
2539
  if (name == "sygus-sym-break-dynamic") {
10127
    assign_datatypes_sygusSymBreakDynamic(opts, name, optionarg == "true");
10128
    return;
10129
  }
10130
2539
  if (name == "sygus-sym-break-lazy") {
10131
2
    assign_datatypes_sygusSymBreakLazy(opts, name, optionarg == "true");
10132
2
    return;
10133
  }
10134
2537
  if (name == "sygus-sym-break-pbe") {
10135
    assign_datatypes_sygusSymBreakPbe(opts, name, optionarg == "true");
10136
    return;
10137
  }
10138
2537
  if (name == "sygus-sym-break-rlv") {
10139
2
    assign_datatypes_sygusSymBreakRlv(opts, name, optionarg == "true");
10140
2
    return;
10141
  }
10142
2535
  if (name == "decision-random-weight") {
10143
    assign_decision_decisionRandomWeight(opts, name, optionarg);
10144
    return;
10145
  }
10146
2535
  if (name == "decision-threshold") {
10147
    assign_decision_decisionThreshold(opts, name, optionarg);
10148
    return;
10149
  }
10150
2535
  if (name == "decision-use-weight") {
10151
    assign_decision_decisionUseWeight(opts, name, optionarg == "true");
10152
    return;
10153
  }
10154
2535
  if (name == "decision-weight-internal") {
10155
    assign_decision_decisionWeightInternal(opts, name, optionarg);
10156
    return;
10157
  }
10158
2535
  if (name == "decision" || name == "decision-mode") {
10159
    assign_decision_decisionMode(opts, name, optionarg);
10160
    return;
10161
  }
10162
2535
  if (name == "jh-rlv-order") {
10163
    assign_decision_jhRlvOrder(opts, name, optionarg == "true");
10164
    return;
10165
  }
10166
2535
  if (name == "jh-skolem-rlv") {
10167
    assign_decision_jhSkolemRlvMode(opts, name, optionarg);
10168
    return;
10169
  }
10170
2535
  if (name == "jh-skolem") {
10171
    assign_decision_jhSkolemMode(opts, name, optionarg);
10172
    return;
10173
  }
10174
2535
  if (name == "dag-thresh") {
10175
1
    assign_expr_defaultDagThresh(opts, name, optionarg);
10176
1
    return;
10177
  }
10178
2534
  if (name == "expr-depth") {
10179
    assign_expr_defaultExprDepth(opts, name, optionarg);
10180
    return;
10181
  }
10182
2534
  if (name == "type-checking") {
10183
    assign_expr_typeChecking(opts, name, optionarg == "true");
10184
    return;
10185
  }
10186
2534
  if (name == "fp-exp") {
10187
    assign_fp_fpExp(opts, name, optionarg == "true");
10188
    return;
10189
  }
10190
2534
  if (name == "fp-lazy-wb") {
10191
    assign_fp_fpLazyWb(opts, name, optionarg == "true");
10192
    return;
10193
  }
10194
2534
  if (name == "copyright") {
10195
    opts.handler().copyright("copyright", name);
10196
    return;
10197
  }
10198
2534
  if (name == "dump-instantiations") {
10199
    assign_driver_dumpInstantiations(opts, name, optionarg == "true");
10200
    return;
10201
  }
10202
2534
  if (name == "dump-instantiations-debug") {
10203
    assign_driver_dumpInstantiationsDebug(opts, name, optionarg == "true");
10204
    return;
10205
  }
10206
2534
  if (name == "dump-models") {
10207
    assign_driver_dumpModels(opts, name, optionarg == "true");
10208
    return;
10209
  }
10210
2534
  if (name == "dump-proofs") {
10211
    assign_driver_dumpProofs(opts, name, optionarg == "true");
10212
    return;
10213
  }
10214
2534
  if (name == "dump-unsat-cores") {
10215
    assign_driver_dumpUnsatCores(opts, name, optionarg == "true");
10216
    return;
10217
  }
10218
2534
  if (name == "dump-unsat-cores-full") {
10219
    assign_driver_dumpUnsatCoresFull(opts, name, optionarg == "true");
10220
    return;
10221
  }
10222
2534
  if (name == "early-exit") {
10223
    assign_driver_earlyExit(opts, name, optionarg == "true");
10224
    return;
10225
  }
10226
2534
  if (name == "force-no-limit-cpu-while-dump") {
10227
    assign_driver_forceNoLimitCpuWhileDump(opts, name, optionarg == "true");
10228
    return;
10229
  }
10230
2534
  if (name == "help") {
10231
    assign_driver_help(opts, name, optionarg == "true");
10232
    return;
10233
  }
10234
2534
  if (name == "interactive") {
10235
    assign_driver_interactive(opts, name, optionarg == "true");
10236
    return;
10237
  }
10238
2534
  if (name == "interactive-prompt") {
10239
    assign_driver_interactivePrompt(opts, name, optionarg == "true");
10240
    return;
10241
  }
10242
2534
  if (name == "seed") {
10243
    assign_driver_seed(opts, name, optionarg);
10244
    return;
10245
  }
10246
2534
  if (name == "segv-spin") {
10247
    assign_driver_segvSpin(opts, name, optionarg == "true");
10248
    return;
10249
  }
10250
2534
  if (name == "show-config") {
10251
    opts.handler().showConfiguration("show-config", name);
10252
    return;
10253
  }
10254
2534
  if (name == "show-debug-tags") {
10255
    opts.handler().showDebugTags("show-debug-tags", name);
10256
    return;
10257
  }
10258
2534
  if (name == "show-trace-tags") {
10259
    opts.handler().showTraceTags("show-trace-tags", name);
10260
    return;
10261
  }
10262
2534
  if (name == "version") {
10263
    assign_driver_version(opts, name, optionarg == "true");
10264
    return;
10265
  }
10266
2534
  if (name == "filesystem-access") {
10267
    assign_parser_filesystemAccess(opts, name, optionarg == "true");
10268
    return;
10269
  }
10270
2534
  if (name == "force-logic") {
10271
    assign_parser_forceLogicString(opts, name, optionarg);
10272
    return;
10273
  }
10274
2534
  if (name == "global-declarations") {
10275
19
    assign_parser_globalDeclarations(opts, name, optionarg == "true");
10276
19
    return;
10277
  }
10278
2515
  if (name == "mmap") {
10279
    assign_parser_memoryMap(opts, name, optionarg == "true");
10280
    return;
10281
  }
10282
2515
  if (name == "semantic-checks") {
10283
    assign_parser_semanticChecks(opts, name, optionarg == "true");
10284
    return;
10285
  }
10286
2515
  if (name == "strict-parsing") {
10287
    assign_parser_strictParsing(opts, name, optionarg == "true");
10288
    return;
10289
  }
10290
2515
  if (name == "flatten-ho-chains") {
10291
    assign_printer_flattenHOChains(opts, name, optionarg == "true");
10292
    return;
10293
  }
10294
2515
  if (name == "inst-format") {
10295
    assign_printer_instFormatMode(opts, name, optionarg);
10296
    return;
10297
  }
10298
2515
  if (name == "model-format") {
10299
    assign_printer_modelFormatMode(opts, name, optionarg);
10300
    return;
10301
  }
10302
2515
  if (name == "print-inst-full") {
10303
    assign_printer_printInstFull(opts, name, optionarg == "true");
10304
    return;
10305
  }
10306
2515
  if (name == "print-inst") {
10307
    assign_printer_printInstMode(opts, name, optionarg);
10308
    return;
10309
  }
10310
2515
  if (name == "proof-eager-checking") {
10311
    assign_proof_proofEagerChecking(opts, name, optionarg == "true");
10312
    return;
10313
  }
10314
2515
  if (name == "proof-format-mode") {
10315
    assign_proof_proofFormatMode(opts, name, optionarg);
10316
    return;
10317
  }
10318
2515
  if (name == "proof-granularity") {
10319
    assign_proof_proofGranularityMode(opts, name, optionarg);
10320
    return;
10321
  }
10322
2515
  if (name == "proof-pedantic") {
10323
    assign_proof_proofPedantic(opts, name, optionarg);
10324
    return;
10325
  }
10326
2515
  if (name == "proof-print-conclusion") {
10327
    assign_proof_proofPrintConclusion(opts, name, optionarg == "true");
10328
    return;
10329
  }
10330
2515
  if (name == "minisat-dump-dimacs") {
10331
    assign_prop_minisatDumpDimacs(opts, name, optionarg == "true");
10332
    return;
10333
  }
10334
2515
  if (name == "minisat-elimination") {
10335
    assign_prop_minisatUseElim(opts, name, optionarg == "true");
10336
    return;
10337
  }
10338
2515
  if (name == "random-freq" || name == "random-frequency") {
10339
    assign_prop_satRandomFreq(opts, name, optionarg);
10340
    return;
10341
  }
10342
2515
  if (name == "random-seed") {
10343
2
    assign_prop_satRandomSeed(opts, name, optionarg);
10344
2
    return;
10345
  }
10346
2513
  if (name == "refine-conflicts") {
10347
    assign_prop_sat_refine_conflicts(opts, name, optionarg == "true");
10348
    return;
10349
  }
10350
2513
  if (name == "restart-int-base") {
10351
    assign_prop_satRestartFirst(opts, name, optionarg);
10352
    return;
10353
  }
10354
2513
  if (name == "restart-int-inc") {
10355
    assign_prop_satRestartInc(opts, name, optionarg);
10356
    return;
10357
  }
10358
2513
  if (name == "ag-miniscope-quant") {
10359
4
    assign_quantifiers_aggressiveMiniscopeQuant(opts, name, optionarg == "true");
10360
4
    return;
10361
  }
10362
2509
  if (name == "cegis-sample") {
10363
    assign_quantifiers_cegisSample(opts, name, optionarg);
10364
    return;
10365
  }
10366
2509
  if (name == "cegqi") {
10367
    assign_quantifiers_cegqi(opts, name, optionarg == "true");
10368
    return;
10369
  }
10370
2509
  if (name == "cegqi-all") {
10371
3
    assign_quantifiers_cegqiAll(opts, name, optionarg == "true");
10372
3
    return;
10373
  }
10374
2506
  if (name == "cegqi-bv") {
10375
    assign_quantifiers_cegqiBv(opts, name, optionarg == "true");
10376
    return;
10377
  }
10378
2506
  if (name == "cegqi-bv-concat-inv") {
10379
    assign_quantifiers_cegqiBvConcInv(opts, name, optionarg == "true");
10380
    return;
10381
  }
10382
2506
  if (name == "cegqi-bv-ineq") {
10383
    assign_quantifiers_cegqiBvIneqMode(opts, name, optionarg);
10384
    return;
10385
  }
10386
2506
  if (name == "cegqi-bv-interleave-value") {
10387
    assign_quantifiers_cegqiBvInterleaveValue(opts, name, optionarg == "true");
10388
    return;
10389
  }
10390
2506
  if (name == "cegqi-bv-linear") {
10391
    assign_quantifiers_cegqiBvLinearize(opts, name, optionarg == "true");
10392
    return;
10393
  }
10394
2506
  if (name == "cegqi-bv-rm-extract") {
10395
    assign_quantifiers_cegqiBvRmExtract(opts, name, optionarg == "true");
10396
    return;
10397
  }
10398
2506
  if (name == "cegqi-bv-solve-nl") {
10399
    assign_quantifiers_cegqiBvSolveNl(opts, name, optionarg == "true");
10400
    return;
10401
  }
10402
2506
  if (name == "cegqi-full") {
10403
512
    assign_quantifiers_cegqiFullEffort(opts, name, optionarg == "true");
10404
512
    return;
10405
  }
10406
1994
  if (name == "cegqi-innermost") {
10407
    assign_quantifiers_cegqiInnermost(opts, name, optionarg == "true");
10408
    return;
10409
  }
10410
1994
  if (name == "cegqi-midpoint") {
10411
    assign_quantifiers_cegqiMidpoint(opts, name, optionarg == "true");
10412
    return;
10413
  }
10414
1994
  if (name == "cegqi-min-bounds") {
10415
    assign_quantifiers_cegqiMinBounds(opts, name, optionarg == "true");
10416
    return;
10417
  }
10418
1994
  if (name == "cegqi-model") {
10419
    assign_quantifiers_cegqiModel(opts, name, optionarg == "true");
10420
    return;
10421
  }
10422
1994
  if (name == "cegqi-multi-inst") {
10423
    assign_quantifiers_cegqiMultiInst(opts, name, optionarg == "true");
10424
    return;
10425
  }
10426
1994
  if (name == "cegqi-nested-qe") {
10427
12
    assign_quantifiers_cegqiNestedQE(opts, name, optionarg == "true");
10428
12
    return;
10429
  }
10430
1982
  if (name == "cegqi-nopt") {
10431
    assign_quantifiers_cegqiNopt(opts, name, optionarg == "true");
10432
    return;
10433
  }
10434
1982
  if (name == "cegqi-repeat-lit") {
10435
    assign_quantifiers_cegqiRepeatLit(opts, name, optionarg == "true");
10436
    return;
10437
  }
10438
1982
  if (name == "cegqi-round-up-lia") {
10439
    assign_quantifiers_cegqiRoundUpLowerLia(opts, name, optionarg == "true");
10440
    return;
10441
  }
10442
1982
  if (name == "cegqi-sat") {
10443
    assign_quantifiers_cegqiSat(opts, name, optionarg == "true");
10444
    return;
10445
  }
10446
1982
  if (name == "cegqi-use-inf-int") {
10447
3
    assign_quantifiers_cegqiUseInfInt(opts, name, optionarg == "true");
10448
3
    return;
10449
  }
10450
1979
  if (name == "cegqi-use-inf-real") {
10451
3
    assign_quantifiers_cegqiUseInfReal(opts, name, optionarg == "true");
10452
3
    return;
10453
  }
10454
1976
  if (name == "cond-var-split-agg-quant") {
10455
    assign_quantifiers_condVarSplitQuantAgg(opts, name, optionarg == "true");
10456
    return;
10457
  }
10458
1976
  if (name == "cond-var-split-quant") {
10459
    assign_quantifiers_condVarSplitQuant(opts, name, optionarg == "true");
10460
    return;
10461
  }
10462
1976
  if (name == "conjecture-filter-active-terms") {
10463
    assign_quantifiers_conjectureFilterActiveTerms(opts, name, optionarg == "true");
10464
    return;
10465
  }
10466
1976
  if (name == "conjecture-filter-canonical") {
10467
    assign_quantifiers_conjectureFilterCanonical(opts, name, optionarg == "true");
10468
    return;
10469
  }
10470
1976
  if (name == "conjecture-filter-model") {
10471
2
    assign_quantifiers_conjectureFilterModel(opts, name, optionarg == "true");
10472
2
    return;
10473
  }
10474
1974
  if (name == "conjecture-gen") {
10475
4
    assign_quantifiers_conjectureGen(opts, name, optionarg == "true");
10476
4
    return;
10477
  }
10478
1970
  if (name == "conjecture-gen-gt-enum") {
10479
    assign_quantifiers_conjectureGenGtEnum(opts, name, optionarg);
10480
    return;
10481
  }
10482
1970
  if (name == "conjecture-gen-max-depth") {
10483
    assign_quantifiers_conjectureGenMaxDepth(opts, name, optionarg);
10484
    return;
10485
  }
10486
1970
  if (name == "conjecture-gen-per-round") {
10487
    assign_quantifiers_conjectureGenPerRound(opts, name, optionarg);
10488
    return;
10489
  }
10490
1970
  if (name == "conjecture-gen-uee-intro") {
10491
    assign_quantifiers_conjectureUeeIntro(opts, name, optionarg == "true");
10492
    return;
10493
  }
10494
1970
  if (name == "conjecture-no-filter") {
10495
2
    assign_quantifiers_conjectureNoFilter(opts, name, optionarg == "true");
10496
2
    return;
10497
  }
10498
1968
  if (name == "dt-stc-ind") {
10499
    assign_quantifiers_dtStcInduction(opts, name, optionarg == "true");
10500
    return;
10501
  }
10502
1968
  if (name == "dt-var-exp-quant") {
10503
    assign_quantifiers_dtVarExpandQuant(opts, name, optionarg == "true");
10504
    return;
10505
  }
10506
1968
  if (name == "e-matching") {
10507
1
    assign_quantifiers_eMatching(opts, name, optionarg == "true");
10508
1
    return;
10509
  }
10510
1967
  if (name == "elim-taut-quant") {
10511
    assign_quantifiers_elimTautQuant(opts, name, optionarg == "true");
10512
    return;
10513
  }
10514
1967
  if (name == "ext-rewrite-quant") {
10515
2
    assign_quantifiers_extRewriteQuant(opts, name, optionarg == "true");
10516
2
    return;
10517
  }
10518
1965
  if (name == "finite-model-find") {
10519
16
    assign_quantifiers_finiteModelFind(opts, name, optionarg == "true");
10520
16
    return;
10521
  }
10522
1949
  if (name == "fmf-bound") {
10523
14
    assign_quantifiers_fmfBound(opts, name, optionarg == "true");
10524
14
    return;
10525
  }
10526
1935
  if (name == "fmf-bound-int") {
10527
6
    assign_quantifiers_fmfBoundInt(opts, name, optionarg == "true");
10528
6
    return;
10529
  }
10530
1929
  if (name == "fmf-bound-lazy") {
10531
    assign_quantifiers_fmfBoundLazy(opts, name, optionarg == "true");
10532
    return;
10533
  }
10534
1929
  if (name == "fmf-fmc-simple") {
10535
    assign_quantifiers_fmfFmcSimple(opts, name, optionarg == "true");
10536
    return;
10537
  }
10538
1929
  if (name == "fmf-fresh-dc") {
10539
    assign_quantifiers_fmfFreshDistConst(opts, name, optionarg == "true");
10540
    return;
10541
  }
10542
1929
  if (name == "fmf-fun") {
10543
14
    assign_quantifiers_fmfFunWellDefined(opts, name, optionarg == "true");
10544
14
    return;
10545
  }
10546
1915
  if (name == "fmf-fun-rlv") {
10547
    assign_quantifiers_fmfFunWellDefinedRelevant(opts, name, optionarg == "true");
10548
    return;
10549
  }
10550
1915
  if (name == "fmf-inst-engine") {
10551
    assign_quantifiers_fmfInstEngine(opts, name, optionarg == "true");
10552
    return;
10553
  }
10554
1915
  if (name == "fmf-type-completion-thresh") {
10555
    assign_quantifiers_fmfTypeCompletionThresh(opts, name, optionarg);
10556
    return;
10557
  }
10558
1915
  if (name == "fs-interleave") {
10559
    assign_quantifiers_fullSaturateInterleave(opts, name, optionarg == "true");
10560
    return;
10561
  }
10562
1915
  if (name == "fs-stratify") {
10563
    assign_quantifiers_fullSaturateStratify(opts, name, optionarg == "true");
10564
    return;
10565
  }
10566
1915
  if (name == "fs-sum") {
10567
    assign_quantifiers_fullSaturateSum(opts, name, optionarg == "true");
10568
    return;
10569
  }
10570
1915
  if (name == "full-saturate-quant") {
10571
    assign_quantifiers_fullSaturateQuant(opts, name, optionarg == "true");
10572
    return;
10573
  }
10574
1915
  if (name == "full-saturate-quant-limit") {
10575
    assign_quantifiers_fullSaturateLimit(opts, name, optionarg);
10576
    return;
10577
  }
10578
1915
  if (name == "full-saturate-quant-rd") {
10579
    assign_quantifiers_fullSaturateQuantRd(opts, name, optionarg == "true");
10580
    return;
10581
  }
10582
1915
  if (name == "global-negate") {
10583
2
    assign_quantifiers_globalNegate(opts, name, optionarg == "true");
10584
2
    return;
10585
  }
10586
1913
  if (name == "ho-elim") {
10587
    assign_quantifiers_hoElim(opts, name, optionarg == "true");
10588
    return;
10589
  }
10590
1913
  if (name == "ho-elim-store-ax") {
10591
    assign_quantifiers_hoElimStoreAx(opts, name, optionarg == "true");
10592
    return;
10593
  }
10594
1913
  if (name == "ho-matching") {
10595
    assign_quantifiers_hoMatching(opts, name, optionarg == "true");
10596
    return;
10597
  }
10598
1913
  if (name == "ho-matching-var-priority") {
10599
    assign_quantifiers_hoMatchingVarArgPriority(opts, name, optionarg == "true");
10600
    return;
10601
  }
10602
1913
  if (name == "ho-merge-term-db") {
10603
    assign_quantifiers_hoMergeTermDb(opts, name, optionarg == "true");
10604
    return;
10605
  }
10606
1913
  if (name == "increment-triggers") {
10607
    assign_quantifiers_incrementTriggers(opts, name, optionarg == "true");
10608
    return;
10609
  }
10610
1913
  if (name == "inst-level-input-only") {
10611
    assign_quantifiers_instLevelInputOnly(opts, name, optionarg == "true");
10612
    return;
10613
  }
10614
1913
  if (name == "inst-max-level") {
10615
    assign_quantifiers_instMaxLevel(opts, name, optionarg);
10616
    return;
10617
  }
10618
1913
  if (name == "inst-max-rounds") {
10619
    assign_quantifiers_instMaxRounds(opts, name, optionarg);
10620
    return;
10621
  }
10622
1913
  if (name == "inst-no-entail") {
10623
    assign_quantifiers_instNoEntail(opts, name, optionarg == "true");
10624
    return;
10625
  }
10626
1913
  if (name == "inst-when-phase") {
10627
    assign_quantifiers_instWhenPhase(opts, name, optionarg);
10628
    return;
10629
  }
10630
1913
  if (name == "inst-when-strict-interleave") {
10631
    assign_quantifiers_instWhenStrictInterleave(opts, name, optionarg == "true");
10632
    return;
10633
  }
10634
1913
  if (name == "inst-when-tc-first") {
10635
    assign_quantifiers_instWhenTcFirst(opts, name, optionarg == "true");
10636
    return;
10637
  }
10638
1913
  if (name == "inst-when") {
10639
    assign_quantifiers_instWhenMode(opts, name, optionarg);
10640
    return;
10641
  }
10642
1913
  if (name == "int-wf-ind") {
10643
2
    assign_quantifiers_intWfInduction(opts, name, optionarg == "true");
10644
2
    return;
10645
  }
10646
1911
  if (name == "ite-dtt-split-quant") {
10647
    assign_quantifiers_iteDtTesterSplitQuant(opts, name, optionarg == "true");
10648
    return;
10649
  }
10650
1911
  if (name == "ite-lift-quant") {
10651
    assign_quantifiers_iteLiftQuant(opts, name, optionarg);
10652
    return;
10653
  }
10654
1911
  if (name == "literal-matching") {
10655
    assign_quantifiers_literalMatchMode(opts, name, optionarg);
10656
    return;
10657
  }
10658
1911
  if (name == "macros-quant") {
10659
    assign_quantifiers_macrosQuant(opts, name, optionarg == "true");
10660
    return;
10661
  }
10662
1911
  if (name == "macros-quant-mode") {
10663
    assign_quantifiers_macrosQuantMode(opts, name, optionarg);
10664
    return;
10665
  }
10666
1911
  if (name == "mbqi-interleave") {
10667
    assign_quantifiers_mbqiInterleave(opts, name, optionarg == "true");
10668
    return;
10669
  }
10670
1911
  if (name == "mbqi-one-inst-per-round") {
10671
    assign_quantifiers_fmfOneInstPerRound(opts, name, optionarg == "true");
10672
    return;
10673
  }
10674
1911
  if (name == "mbqi") {
10675
    assign_quantifiers_mbqiMode(opts, name, optionarg);
10676
    return;
10677
  }
10678
1911
  if (name == "miniscope-quant") {
10679
116
    assign_quantifiers_miniscopeQuant(opts, name, optionarg == "true");
10680
116
    return;
10681
  }
10682
1795
  if (name == "miniscope-quant-fv") {
10683
114
    assign_quantifiers_miniscopeQuantFreeVar(opts, name, optionarg == "true");
10684
114
    return;
10685
  }
10686
1681
  if (name == "multi-trigger-cache") {
10687
    assign_quantifiers_multiTriggerCache(opts, name, optionarg == "true");
10688
    return;
10689
  }
10690
1681
  if (name == "multi-trigger-linear") {
10691
    assign_quantifiers_multiTriggerLinear(opts, name, optionarg == "true");
10692
    return;
10693
  }
10694
1681
  if (name == "multi-trigger-priority") {
10695
    assign_quantifiers_multiTriggerPriority(opts, name, optionarg == "true");
10696
    return;
10697
  }
10698
1681
  if (name == "multi-trigger-when-single") {
10699
    assign_quantifiers_multiTriggerWhenSingle(opts, name, optionarg == "true");
10700
    return;
10701
  }
10702
1681
  if (name == "partial-triggers") {
10703
    assign_quantifiers_partialTriggers(opts, name, optionarg == "true");
10704
    return;
10705
  }
10706
1681
  if (name == "pool-inst") {
10707
    assign_quantifiers_poolInst(opts, name, optionarg == "true");
10708
    return;
10709
  }
10710
1681
  if (name == "pre-skolem-quant") {
10711
2
    assign_quantifiers_preSkolemQuant(opts, name, optionarg == "true");
10712
2
    return;
10713
  }
10714
1679
  if (name == "pre-skolem-quant-agg") {
10715
    assign_quantifiers_preSkolemQuantAgg(opts, name, optionarg == "true");
10716
    return;
10717
  }
10718
1679
  if (name == "pre-skolem-quant-nested") {
10719
2
    assign_quantifiers_preSkolemQuantNested(opts, name, optionarg == "true");
10720
2
    return;
10721
  }
10722
1677
  if (name == "prenex-quant-user") {
10723
    assign_quantifiers_prenexQuantUser(opts, name, optionarg == "true");
10724
    return;
10725
  }
10726
1677
  if (name == "prenex-quant") {
10727
    assign_quantifiers_prenexQuant(opts, name, optionarg);
10728
    return;
10729
  }
10730
1677
  if (name == "purify-triggers") {
10731
    assign_quantifiers_purifyTriggers(opts, name, optionarg == "true");
10732
    return;
10733
  }
10734
1677
  if (name == "qcf-all-conflict") {
10735
    assign_quantifiers_qcfAllConflict(opts, name, optionarg == "true");
10736
    return;
10737
  }
10738
1677
  if (name == "qcf-eager-check-rd") {
10739
    assign_quantifiers_qcfEagerCheckRd(opts, name, optionarg == "true");
10740
    return;
10741
  }
10742
1677
  if (name == "qcf-eager-test") {
10743
    assign_quantifiers_qcfEagerTest(opts, name, optionarg == "true");
10744
    return;
10745
  }
10746
1677
  if (name == "qcf-nested-conflict") {
10747
    assign_quantifiers_qcfNestedConflict(opts, name, optionarg == "true");
10748
    return;
10749
  }
10750
1677
  if (name == "qcf-skip-rd") {
10751
    assign_quantifiers_qcfSkipRd(opts, name, optionarg == "true");
10752
    return;
10753
  }
10754
1677
  if (name == "qcf-tconstraint") {
10755
    assign_quantifiers_qcfTConstraint(opts, name, optionarg == "true");
10756
    return;
10757
  }
10758
1677
  if (name == "qcf-vo-exp") {
10759
    assign_quantifiers_qcfVoExp(opts, name, optionarg == "true");
10760
    return;
10761
  }
10762
1677
  if (name == "quant-alpha-equiv") {
10763
    assign_quantifiers_quantAlphaEquiv(opts, name, optionarg == "true");
10764
    return;
10765
  }
10766
1677
  if (name == "quant-cf") {
10767
    assign_quantifiers_quantConflictFind(opts, name, optionarg == "true");
10768
    return;
10769
  }
10770
1677
  if (name == "quant-cf-mode") {
10771
    assign_quantifiers_qcfMode(opts, name, optionarg);
10772
    return;
10773
  }
10774
1677
  if (name == "quant-cf-when") {
10775
    assign_quantifiers_qcfWhenMode(opts, name, optionarg);
10776
    return;
10777
  }
10778
1677
  if (name == "quant-dsplit-mode") {
10779
    assign_quantifiers_quantDynamicSplit(opts, name, optionarg);
10780
    return;
10781
  }
10782
1677
  if (name == "quant-fun-wd") {
10783
    assign_quantifiers_quantFunWellDefined(opts, name, optionarg == "true");
10784
    return;
10785
  }
10786
1677
  if (name == "quant-ind") {
10787
2
    assign_quantifiers_quantInduction(opts, name, optionarg == "true");
10788
2
    return;
10789
  }
10790
1675
  if (name == "quant-rep-mode") {
10791
    assign_quantifiers_quantRepMode(opts, name, optionarg);
10792
    return;
10793
  }
10794
1675
  if (name == "quant-split") {
10795
114
    assign_quantifiers_quantSplit(opts, name, optionarg == "true");
10796
114
    return;
10797
  }
10798
1561
  if (name == "register-quant-body-terms") {
10799
    assign_quantifiers_registerQuantBodyTerms(opts, name, optionarg == "true");
10800
    return;
10801
  }
10802
1561
  if (name == "relational-triggers") {
10803
    assign_quantifiers_relationalTriggers(opts, name, optionarg == "true");
10804
    return;
10805
  }
10806
1561
  if (name == "relevant-triggers") {
10807
    assign_quantifiers_relevantTriggers(opts, name, optionarg == "true");
10808
    return;
10809
  }
10810
1561
  if (name == "sygus") {
10811
    assign_quantifiers_sygus(opts, name, optionarg == "true");
10812
    return;
10813
  }
10814
1561
  if (name == "sygus-active-gen-cfactor") {
10815
    assign_quantifiers_sygusActiveGenEnumConsts(opts, name, optionarg);
10816
    return;
10817
  }
10818
1561
  if (name == "sygus-active-gen") {
10819
1
    assign_quantifiers_sygusActiveGenMode(opts, name, optionarg);
10820
1
    return;
10821
  }
10822
1560
  if (name == "sygus-add-const-grammar") {
10823
    assign_quantifiers_sygusAddConstGrammar(opts, name, optionarg == "true");
10824
    return;
10825
  }
10826
1560
  if (name == "sygus-arg-relevant") {
10827
    assign_quantifiers_sygusArgRelevant(opts, name, optionarg == "true");
10828
    return;
10829
  }
10830
1560
  if (name == "sygus-auto-unfold") {
10831
    assign_quantifiers_sygusInvAutoUnfold(opts, name, optionarg == "true");
10832
    return;
10833
  }
10834
1560
  if (name == "sygus-bool-ite-return-const") {
10835
    assign_quantifiers_sygusBoolIteReturnConst(opts, name, optionarg == "true");
10836
    return;
10837
  }
10838
1560
  if (name == "sygus-core-connective") {
10839
    assign_quantifiers_sygusCoreConnective(opts, name, optionarg == "true");
10840
    return;
10841
  }
10842
1560
  if (name == "sygus-crepair-abort") {
10843
    assign_quantifiers_sygusConstRepairAbort(opts, name, optionarg == "true");
10844
    return;
10845
  }
10846
1560
  if (name == "sygus-eval-opt") {
10847
    assign_quantifiers_sygusEvalOpt(opts, name, optionarg == "true");
10848
    return;
10849
  }
10850
1560
  if (name == "sygus-eval-unfold") {
10851
    assign_quantifiers_sygusEvalUnfold(opts, name, optionarg == "true");
10852
    return;
10853
  }
10854
1560
  if (name == "sygus-eval-unfold-bool") {
10855
    assign_quantifiers_sygusEvalUnfoldBool(opts, name, optionarg == "true");
10856
    return;
10857
  }
10858
1560
  if (name == "sygus-expr-miner-check-timeout") {
10859
    assign_quantifiers_sygusExprMinerCheckTimeout(opts, name, optionarg);
10860
    return;
10861
  }
10862
1560
  if (name == "sygus-ext-rew") {
10863
2
    assign_quantifiers_sygusExtRew(opts, name, optionarg == "true");
10864
2
    return;
10865
  }
10866
1558
  if (name == "sygus-filter-sol-rev") {
10867
    assign_quantifiers_sygusFilterSolRevSubsume(opts, name, optionarg == "true");
10868
    return;
10869
  }
10870
1558
  if (name == "sygus-filter-sol") {
10871
    assign_quantifiers_sygusFilterSolMode(opts, name, optionarg);
10872
    return;
10873
  }
10874
1558
  if (name == "sygus-grammar-cons") {
10875
    assign_quantifiers_sygusGrammarConsMode(opts, name, optionarg);
10876
    return;
10877
  }
10878
1558
  if (name == "sygus-grammar-norm") {
10879
    assign_quantifiers_sygusGrammarNorm(opts, name, optionarg == "true");
10880
    return;
10881
  }
10882
1558
  if (name == "sygus-inference") {
10883
14
    assign_quantifiers_sygusInference(opts, name, optionarg == "true");
10884
14
    return;
10885
  }
10886
1544
  if (name == "sygus-inst") {
10887
4
    assign_quantifiers_sygusInst(opts, name, optionarg == "true");
10888
4
    return;
10889
  }
10890
1540
  if (name == "sygus-inst-mode") {
10891
    assign_quantifiers_sygusInstMode(opts, name, optionarg);
10892
    return;
10893
  }
10894
1540
  if (name == "sygus-inst-scope") {
10895
    assign_quantifiers_sygusInstScope(opts, name, optionarg);
10896
    return;
10897
  }
10898
1540
  if (name == "sygus-inst-term-sel") {
10899
    assign_quantifiers_sygusInstTermSel(opts, name, optionarg);
10900
    return;
10901
  }
10902
1540
  if (name == "sygus-inv-templ-when-sg") {
10903
    assign_quantifiers_sygusInvTemplWhenSyntax(opts, name, optionarg == "true");
10904
    return;
10905
  }
10906
1540
  if (name == "sygus-inv-templ") {
10907
    assign_quantifiers_sygusInvTemplMode(opts, name, optionarg);
10908
    return;
10909
  }
10910
1540
  if (name == "sygus-min-grammar") {
10911
    assign_quantifiers_sygusMinGrammar(opts, name, optionarg == "true");
10912
    return;
10913
  }
10914
1540
  if (name == "sygus-pbe") {
10915
    assign_quantifiers_sygusUnifPbe(opts, name, optionarg == "true");
10916
    return;
10917
  }
10918
1540
  if (name == "sygus-pbe-multi-fair") {
10919
    assign_quantifiers_sygusPbeMultiFair(opts, name, optionarg == "true");
10920
    return;
10921
  }
10922
1540
  if (name == "sygus-pbe-multi-fair-diff") {
10923
    assign_quantifiers_sygusPbeMultiFairDiff(opts, name, optionarg);
10924
    return;
10925
  }
10926
1540
  if (name == "sygus-qe-preproc") {
10927
    assign_quantifiers_sygusQePreproc(opts, name, optionarg == "true");
10928
    return;
10929
  }
10930
1540
  if (name == "sygus-query-gen") {
10931
    assign_quantifiers_sygusQueryGen(opts, name, optionarg == "true");
10932
    return;
10933
  }
10934
1540
  if (name == "sygus-query-gen-check") {
10935
    assign_quantifiers_sygusQueryGenCheck(opts, name, optionarg == "true");
10936
    return;
10937
  }
10938
1540
  if (name == "sygus-query-gen-dump-files") {
10939
    assign_quantifiers_sygusQueryGenDumpFiles(opts, name, optionarg);
10940
    return;
10941
  }
10942
1540
  if (name == "sygus-query-gen-thresh") {
10943
    assign_quantifiers_sygusQueryGenThresh(opts, name, optionarg);
10944
    return;
10945
  }
10946
1540
  if (name == "sygus-rec-fun") {
10947
2
    assign_quantifiers_sygusRecFun(opts, name, optionarg == "true");
10948
2
    return;
10949
  }
10950
1538
  if (name == "sygus-rec-fun-eval-limit") {
10951
    assign_quantifiers_sygusRecFunEvalLimit(opts, name, optionarg);
10952
    return;
10953
  }
10954
1538
  if (name == "sygus-repair-const") {
10955
    assign_quantifiers_sygusRepairConst(opts, name, optionarg == "true");
10956
    return;
10957
  }
10958
1538
  if (name == "sygus-repair-const-timeout") {
10959
    assign_quantifiers_sygusRepairConstTimeout(opts, name, optionarg);
10960
    return;
10961
  }
10962
1538
  if (name == "sygus-rr") {
10963
    assign_quantifiers_sygusRew(opts, name, optionarg == "true");
10964
    return;
10965
  }
10966
1538
  if (name == "sygus-rr-synth") {
10967
    assign_quantifiers_sygusRewSynth(opts, name, optionarg == "true");
10968
    return;
10969
  }
10970
1538
  if (name == "sygus-rr-synth-accel") {
10971
    assign_quantifiers_sygusRewSynthAccel(opts, name, optionarg == "true");
10972
    return;
10973
  }
10974
1538
  if (name == "sygus-rr-synth-check") {
10975
2
    assign_quantifiers_sygusRewSynthCheck(opts, name, optionarg == "true");
10976
2
    return;
10977
  }
10978
1536
  if (name == "sygus-rr-synth-filter-cong") {
10979
    assign_quantifiers_sygusRewSynthFilterCong(opts, name, optionarg == "true");
10980
    return;
10981
  }
10982
1536
  if (name == "sygus-rr-synth-filter-match") {
10983
    assign_quantifiers_sygusRewSynthFilterMatch(opts, name, optionarg == "true");
10984
    return;
10985
  }
10986
1536
  if (name == "sygus-rr-synth-filter-nl") {
10987
    assign_quantifiers_sygusRewSynthFilterNonLinear(opts, name, optionarg == "true");
10988
    return;
10989
  }
10990
1536
  if (name == "sygus-rr-synth-filter-order") {
10991
    assign_quantifiers_sygusRewSynthFilterOrder(opts, name, optionarg == "true");
10992
    return;
10993
  }
10994
1536
  if (name == "sygus-rr-synth-input") {
10995
255
    assign_quantifiers_sygusRewSynthInput(opts, name, optionarg == "true");
10996
255
    return;
10997
  }
10998
1281
  if (name == "sygus-rr-synth-input-nvars") {
10999
    assign_quantifiers_sygusRewSynthInputNVars(opts, name, optionarg);
11000
    return;
11001
  }
11002
1281
  if (name == "sygus-rr-synth-input-use-bool") {
11003
    assign_quantifiers_sygusRewSynthInputUseBool(opts, name, optionarg == "true");
11004
    return;
11005
  }
11006
1281
  if (name == "sygus-rr-synth-rec") {
11007
    assign_quantifiers_sygusRewSynthRec(opts, name, optionarg == "true");
11008
    return;
11009
  }
11010
1281
  if (name == "sygus-rr-verify") {
11011
    assign_quantifiers_sygusRewVerify(opts, name, optionarg == "true");
11012
    return;
11013
  }
11014
1281
  if (name == "sygus-rr-verify-abort") {
11015
    assign_quantifiers_sygusRewVerifyAbort(opts, name, optionarg == "true");
11016
    return;
11017
  }
11018
1281
  if (name == "sygus-sample-fp-uniform") {
11019
    assign_quantifiers_sygusSampleFpUniform(opts, name, optionarg == "true");
11020
    return;
11021
  }
11022
1281
  if (name == "sygus-sample-grammar") {
11023
    assign_quantifiers_sygusSampleGrammar(opts, name, optionarg == "true");
11024
    return;
11025
  }
11026
1281
  if (name == "sygus-samples") {
11027
    assign_quantifiers_sygusSamples(opts, name, optionarg);
11028
    return;
11029
  }
11030
1281
  if (name == "sygus-si-abort") {
11031
    assign_quantifiers_cegqiSingleInvAbort(opts, name, optionarg == "true");
11032
    return;
11033
  }
11034
1281
  if (name == "sygus-si-partial") {
11035
    assign_quantifiers_cegqiSingleInvPartial(opts, name, optionarg == "true");
11036
    return;
11037
  }
11038
1281
  if (name == "sygus-si-rcons-limit") {
11039
    assign_quantifiers_cegqiSingleInvReconstructLimit(opts, name, optionarg);
11040
    return;
11041
  }
11042
1281
  if (name == "sygus-si-rcons") {
11043
    assign_quantifiers_cegqiSingleInvReconstruct(opts, name, optionarg);
11044
    return;
11045
  }
11046
1281
  if (name == "sygus-si-reconstruct-const") {
11047
    assign_quantifiers_cegqiSingleInvReconstructConst(opts, name, optionarg == "true");
11048
    return;
11049
  }
11050
1281
  if (name == "sygus-si") {
11051
    assign_quantifiers_cegqiSingleInvMode(opts, name, optionarg);
11052
    return;
11053
  }
11054
1281
  if (name == "sygus-stream") {
11055
    assign_quantifiers_sygusStream(opts, name, optionarg == "true");
11056
    return;
11057
  }
11058
1281
  if (name == "sygus-templ-embed-grammar") {
11059
    assign_quantifiers_sygusTemplEmbedGrammar(opts, name, optionarg == "true");
11060
    return;
11061
  }
11062
1281
  if (name == "sygus-unif-cond-independent-no-repeat-sol") {
11063
    assign_quantifiers_sygusUnifCondIndNoRepeatSol(opts, name, optionarg == "true");
11064
    return;
11065
  }
11066
1281
  if (name == "sygus-unif-pi") {
11067
    assign_quantifiers_sygusUnifPi(opts, name, optionarg);
11068
    return;
11069
  }
11070
1281
  if (name == "sygus-unif-shuffle-cond") {
11071
    assign_quantifiers_sygusUnifShuffleCond(opts, name, optionarg == "true");
11072
    return;
11073
  }
11074
1281
  if (name == "sygus-verify-inst-max-rounds") {
11075
    assign_quantifiers_sygusVerifyInstMaxRounds(opts, name, optionarg);
11076
    return;
11077
  }
11078
1281
  if (name == "term-db-cd") {
11079
    assign_quantifiers_termDbCd(opts, name, optionarg == "true");
11080
    return;
11081
  }
11082
1281
  if (name == "term-db-mode") {
11083
    assign_quantifiers_termDbMode(opts, name, optionarg);
11084
    return;
11085
  }
11086
1281
  if (name == "trigger-active-sel") {
11087
    assign_quantifiers_triggerActiveSelMode(opts, name, optionarg);
11088
    return;
11089
  }
11090
1281
  if (name == "trigger-sel") {
11091
    assign_quantifiers_triggerSelMode(opts, name, optionarg);
11092
    return;
11093
  }
11094
1281
  if (name == "user-pat") {
11095
    assign_quantifiers_userPatternsQuant(opts, name, optionarg);
11096
    return;
11097
  }
11098
1281
  if (name == "var-elim-quant") {
11099
    assign_quantifiers_varElimQuant(opts, name, optionarg == "true");
11100
    return;
11101
  }
11102
1281
  if (name == "var-ineq-elim-quant") {
11103
5
    assign_quantifiers_varIneqElimQuant(opts, name, optionarg == "true");
11104
5
    return;
11105
  }
11106
1276
  if (name == "sep-check-neg") {
11107
    assign_sep_sepCheckNeg(opts, name, optionarg == "true");
11108
    return;
11109
  }
11110
1276
  if (name == "sep-child-refine") {
11111
    assign_sep_sepChildRefine(opts, name, optionarg == "true");
11112
    return;
11113
  }
11114
1276
  if (name == "sep-deq-c") {
11115
    assign_sep_sepDisequalC(opts, name, optionarg == "true");
11116
    return;
11117
  }
11118
1276
  if (name == "sep-exp") {
11119
    assign_sep_sepExp(opts, name, optionarg == "true");
11120
    return;
11121
  }
11122
1276
  if (name == "sep-min-refine") {
11123
    assign_sep_sepMinimalRefine(opts, name, optionarg == "true");
11124
    return;
11125
  }
11126
1276
  if (name == "sep-pre-skolem-emp") {
11127
    assign_sep_sepPreSkolemEmp(opts, name, optionarg == "true");
11128
    return;
11129
  }
11130
1276
  if (name == "sets-ext") {
11131
84
    assign_sets_setsExt(opts, name, optionarg == "true");
11132
84
    return;
11133
  }
11134
1192
  if (name == "sets-infer-as-lemmas") {
11135
    assign_sets_setsInferAsLemmas(opts, name, optionarg == "true");
11136
    return;
11137
  }
11138
1192
  if (name == "sets-proxy-lemmas") {
11139
    assign_sets_setsProxyLemmas(opts, name, optionarg == "true");
11140
    return;
11141
  }
11142
1192
  if (name == "abstract-values") {
11143
    assign_smt_abstractValues(opts, name, optionarg == "true");
11144
    return;
11145
  }
11146
1192
  if (name == "ackermann") {
11147
    assign_smt_ackermann(opts, name, optionarg == "true");
11148
    return;
11149
  }
11150
1192
  if (name == "block-models") {
11151
14
    assign_smt_blockModelsMode(opts, name, optionarg);
11152
14
    return;
11153
  }
11154
1178
  if (name == "bvand-integer-granularity") {
11155
    assign_smt_BVAndIntegerGranularity(opts, name, optionarg);
11156
    return;
11157
  }
11158
1178
  if (name == "check-abducts") {
11159
    assign_smt_checkAbducts(opts, name, optionarg == "true");
11160
    return;
11161
  }
11162
1178
  if (name == "check-interpols") {
11163
    assign_smt_checkInterpols(opts, name, optionarg == "true");
11164
    return;
11165
  }
11166
1178
  if (name == "check-models") {
11167
9
    assign_smt_checkModels(opts, name, optionarg == "true");
11168
9
    return;
11169
  }
11170
1169
  if (name == "check-proofs") {
11171
    assign_smt_checkProofs(opts, name, optionarg == "true");
11172
    return;
11173
  }
11174
1169
  if (name == "check-synth-sol") {
11175
    assign_smt_checkSynthSol(opts, name, optionarg == "true");
11176
    return;
11177
  }
11178
1169
  if (name == "check-unsat-cores") {
11179
8
    assign_smt_checkUnsatCores(opts, name, optionarg == "true");
11180
8
    return;
11181
  }
11182
1161
  if (name == "debug-check-models") {
11183
    assign_smt_debugCheckModels(opts, name, optionarg == "true");
11184
    return;
11185
  }
11186
1161
  if (name == "dump-to") {
11187
    assign_smt_dumpToFileName(opts, name, optionarg);
11188
    return;
11189
  }
11190
1161
  if (name == "dump") {
11191
    assign_smt_dumpModeString(opts, name, optionarg);
11192
    return;
11193
  }
11194
1161
  if (name == "early-ite-removal") {
11195
    assign_smt_earlyIteRemoval(opts, name, optionarg == "true");
11196
    return;
11197
  }
11198
1161
  if (name == "expand-definitions") {
11199
    assign_smt_expandDefinitions(opts, name, optionarg == "true");
11200
    return;
11201
  }
11202
1161
  if (name == "ext-rew-prep") {
11203
2
    assign_smt_extRewPrep(opts, name, optionarg == "true");
11204
2
    return;
11205
  }
11206
1159
  if (name == "ext-rew-prep-agg") {
11207
    assign_smt_extRewPrepAgg(opts, name, optionarg == "true");
11208
    return;
11209
  }
11210
1159
  if (name == "foreign-theory-rewrite") {
11211
    assign_smt_foreignTheoryRewrite(opts, name, optionarg == "true");
11212
    return;
11213
  }
11214
1159
  if (name == "iand-mode") {
11215
    assign_smt_iandMode(opts, name, optionarg);
11216
    return;
11217
  }
11218
1159
  if (name == "interactive-mode") {
11219
2
    assign_smt_interactiveMode(opts, name, optionarg == "true");
11220
2
    return;
11221
  }
11222
1157
  if (name == "ite-simp") {
11223
3
    assign_smt_doITESimp(opts, name, optionarg == "true");
11224
3
    return;
11225
  }
11226
1154
  if (name == "learned-rewrite") {
11227
    assign_smt_learnedRewrite(opts, name, optionarg == "true");
11228
    return;
11229
  }
11230
1154
  if (name == "minimal-unsat-cores") {
11231
    assign_smt_minimalUnsatCores(opts, name, optionarg == "true");
11232
    return;
11233
  }
11234
1154
  if (name == "model-cores") {
11235
    assign_smt_modelCoresMode(opts, name, optionarg);
11236
    return;
11237
  }
11238
1154
  if (name == "model-u-print" || name == "model-uninterp-print") {
11239
    assign_smt_modelUninterpPrint(opts, name, optionarg);
11240
    return;
11241
  }
11242
1154
  if (name == "model-witness-value") {
11243
    assign_smt_modelWitnessValue(opts, name, optionarg == "true");
11244
    return;
11245
  }
11246
1154
  if (name == "on-repeat-ite-simp") {
11247
    assign_smt_doITESimpOnRepeat(opts, name, optionarg == "true");
11248
    return;
11249
  }
11250
1154
  if (name == "produce-abducts") {
11251
9
    assign_smt_produceAbducts(opts, name, optionarg == "true");
11252
9
    return;
11253
  }
11254
1145
  if (name == "produce-assertions") {
11255
26
    assign_smt_produceAssertions(opts, name, optionarg == "true");
11256
26
    return;
11257
  }
11258
1119
  if (name == "produce-assignments") {
11259
4
    assign_smt_produceAssignments(opts, name, optionarg == "true");
11260
4
    return;
11261
  }
11262
1115
  if (name == "produce-interpols") {
11263
3
    assign_smt_produceInterpols(opts, name, optionarg);
11264
3
    return;
11265
  }
11266
1112
  if (name == "produce-models") {
11267
759
    assign_smt_produceModels(opts, name, optionarg == "true");
11268
759
    return;
11269
  }
11270
353
  if (name == "produce-proofs") {
11271
6
    assign_smt_produceProofs(opts, name, optionarg == "true");
11272
6
    return;
11273
  }
11274
347
  if (name == "produce-unsat-assumptions") {
11275
15
    assign_smt_unsatAssumptions(opts, name, optionarg == "true");
11276
15
    return;
11277
  }
11278
332
  if (name == "produce-unsat-cores") {
11279
15
    assign_smt_unsatCores(opts, name, optionarg == "true");
11280
15
    return;
11281
  }
11282
317
  if (name == "repeat-simp") {
11283
2
    assign_smt_repeatSimp(opts, name, optionarg == "true");
11284
2
    return;
11285
  }
11286
315
  if (name == "simp-ite-compress") {
11287
3
    assign_smt_compressItes(opts, name, optionarg == "true");
11288
3
    return;
11289
  }
11290
312
  if (name == "simp-ite-hunt-zombies") {
11291
    assign_smt_zombieHuntThreshold(opts, name, optionarg);
11292
    return;
11293
  }
11294
312
  if (name == "simp-with-care") {
11295
    assign_smt_simplifyWithCareEnabled(opts, name, optionarg == "true");
11296
    return;
11297
  }
11298
312
  if (name == "simplification" || name == "simplification-mode") {
11299
1
    assign_smt_simplificationMode(opts, name, optionarg);
11300
1
    return;
11301
  }
11302
311
  if (name == "solve-bv-as-int") {
11303
14
    assign_smt_solveBVAsInt(opts, name, optionarg);
11304
14
    return;
11305
  }
11306
297
  if (name == "solve-int-as-bv") {
11307
4
    assign_smt_solveIntAsBV(opts, name, optionarg);
11308
4
    return;
11309
  }
11310
293
  if (name == "solve-real-as-int") {
11311
    assign_smt_solveRealAsInt(opts, name, optionarg == "true");
11312
    return;
11313
  }
11314
293
  if (name == "sort-inference") {
11315
6
    assign_smt_sortInference(opts, name, optionarg == "true");
11316
6
    return;
11317
  }
11318
287
  if (name == "static-learning") {
11319
    assign_smt_doStaticLearning(opts, name, optionarg == "true");
11320
    return;
11321
  }
11322
287
  if (name == "sygus-out") {
11323
    assign_smt_sygusOut(opts, name, optionarg);
11324
    return;
11325
  }
11326
287
  if (name == "sygus-print-callbacks") {
11327
    assign_smt_sygusPrintCallbacks(opts, name, optionarg == "true");
11328
    return;
11329
  }
11330
287
  if (name == "unconstrained-simp") {
11331
    assign_smt_unconstrainedSimp(opts, name, optionarg == "true");
11332
    return;
11333
  }
11334
287
  if (name == "unsat-cores-mode") {
11335
    assign_smt_unsatCoresMode(opts, name, optionarg);
11336
    return;
11337
  }
11338
287
  if (name == "re-elim") {
11339
16
    assign_strings_regExpElim(opts, name, optionarg == "true");
11340
16
    return;
11341
  }
11342
271
  if (name == "re-elim-agg") {
11343
8
    assign_strings_regExpElimAgg(opts, name, optionarg == "true");
11344
8
    return;
11345
  }
11346
263
  if (name == "re-inter-mode") {
11347
    assign_strings_stringRegExpInterMode(opts, name, optionarg);
11348
    return;
11349
  }
11350
263
  if (name == "strings-check-entail-len") {
11351
    assign_strings_stringCheckEntailLen(opts, name, optionarg == "true");
11352
    return;
11353
  }
11354
263
  if (name == "strings-eager") {
11355
    assign_strings_stringEager(opts, name, optionarg == "true");
11356
    return;
11357
  }
11358
263
  if (name == "strings-eager-eval") {
11359
    assign_strings_stringEagerEval(opts, name, optionarg == "true");
11360
    return;
11361
  }
11362
263
  if (name == "strings-eager-len") {
11363
    assign_strings_stringEagerLen(opts, name, optionarg == "true");
11364
    return;
11365
  }
11366
263
  if (name == "strings-exp") {
11367
224
    assign_strings_stringExp(opts, name, optionarg == "true");
11368
224
    return;
11369
  }
11370
39
  if (name == "strings-ff") {
11371
    assign_strings_stringFlatForms(opts, name, optionarg == "true");
11372
    return;
11373
  }
11374
39
  if (name == "strings-fmf") {
11375
26
    assign_strings_stringFMF(opts, name, optionarg == "true");
11376
26
    return;
11377
  }
11378
13
  if (name == "strings-guess-model") {
11379
    assign_strings_stringGuessModel(opts, name, optionarg == "true");
11380
    return;
11381
  }
11382
13
  if (name == "strings-infer-as-lemmas") {
11383
    assign_strings_stringInferAsLemmas(opts, name, optionarg == "true");
11384
    return;
11385
  }
11386
13
  if (name == "strings-infer-sym") {
11387
    assign_strings_stringInferSym(opts, name, optionarg == "true");
11388
    return;
11389
  }
11390
13
  if (name == "strings-lazy-pp") {
11391
11
    assign_strings_stringLazyPreproc(opts, name, optionarg == "true");
11392
11
    return;
11393
  }
11394
2
  if (name == "strings-len-norm") {
11395
    assign_strings_stringLenNorm(opts, name, optionarg == "true");
11396
    return;
11397
  }
11398
2
  if (name == "strings-lprop-csp") {
11399
    assign_strings_stringLenPropCsp(opts, name, optionarg == "true");
11400
    return;
11401
  }
11402
2
  if (name == "strings-min-prefix-explain") {
11403
    assign_strings_stringMinPrefixExplain(opts, name, optionarg == "true");
11404
    return;
11405
  }
11406
2
  if (name == "strings-process-loop-mode") {
11407
    assign_strings_stringProcessLoopMode(opts, name, optionarg);
11408
    return;
11409
  }
11410
2
  if (name == "strings-rexplain-lemmas") {
11411
    assign_strings_stringRExplainLemmas(opts, name, optionarg == "true");
11412
    return;
11413
  }
11414
2
  if (name == "strings-unified-vspt") {
11415
    assign_strings_stringUnifiedVSpt(opts, name, optionarg == "true");
11416
    return;
11417
  }
11418
2
  if (name == "assign-function-values") {
11419
2
    assign_theory_assignFunctionValues(opts, name, optionarg == "true");
11420
2
    return;
11421
  }
11422
  if (name == "condense-function-values") {
11423
    assign_theory_condenseFunctionValues(opts, name, optionarg == "true");
11424
    return;
11425
  }
11426
  if (name == "ee-mode") {
11427
    assign_theory_eeMode(opts, name, optionarg);
11428
    return;
11429
  }
11430
  if (name == "relevance-filter") {
11431
    assign_theory_relevanceFilter(opts, name, optionarg == "true");
11432
    return;
11433
  }
11434
  if (name == "tc-mode") {
11435
    assign_theory_tcMode(opts, name, optionarg);
11436
    return;
11437
  }
11438
  if (name == "theoryof-mode") {
11439
    assign_theory_theoryOfMode(opts, name, optionarg);
11440
    return;
11441
  }
11442
  if (name == "symmetry-breaker" || name == "uf-symmetry-breaker") {
11443
    assign_uf_ufSymmetryBreaker(opts, name, optionarg == "true");
11444
    return;
11445
  }
11446
  if (name == "uf-ho") {
11447
    assign_uf_ufHo(opts, name, optionarg == "true");
11448
    return;
11449
  }
11450
  if (name == "uf-ho-ext") {
11451
    assign_uf_ufHoExt(opts, name, optionarg == "true");
11452
    return;
11453
  }
11454
  if (name == "uf-ss-abort-card") {
11455
    assign_uf_ufssAbortCardinality(opts, name, optionarg);
11456
    return;
11457
  }
11458
  if (name == "uf-ss-fair") {
11459
    assign_uf_ufssFairness(opts, name, optionarg == "true");
11460
    return;
11461
  }
11462
  if (name == "uf-ss-fair-monotone") {
11463
    assign_uf_ufssFairnessMonotone(opts, name, optionarg == "true");
11464
    return;
11465
  }
11466
  if (name == "uf-ss-totality-limited") {
11467
    assign_uf_ufssTotalityLimited(opts, name, optionarg);
11468
    return;
11469
  }
11470
  if (name == "uf-ss-totality-sym-break") {
11471
    assign_uf_ufssTotalitySymBreak(opts, name, optionarg == "true");
11472
    return;
11473
  }
11474
  if (name == "uf-ss") {
11475
    assign_uf_ufssMode(opts, name, optionarg);
11476
    return;
11477
  }
11478
  throw UnrecognizedOptionException(name);
11479
}
11480
11481
9569
void set(Options& opts, const std::string& name, const std::string& optionarg)
11482
{
11483
11484
19138
  Trace("options") << "setOption(" << name << ", " << optionarg << ")"
11485
9569
                   << std::endl;
11486
  // first update this object
11487
9569
  setInternal(opts, name, optionarg);
11488
9567
}
11489
11490
std::vector<std::vector<std::string> > getAll(const Options& opts)
11491
{
11492
  std::vector<std::vector<std::string>> res;
11493
11494
res.push_back({"approx-branch-depth", std::to_string(opts.arith.maxApproxDepth)});
11495
  res.push_back({"arith-brab", opts.arith.brabTest ? "true" : "false"});
11496
  res.push_back({"arith-cong-man", opts.arith.arithCongMan ? "true" : "false"});
11497
  res.push_back({"arith-eq-solver", opts.arith.arithEqSolver ? "true" : "false"});
11498
  res.push_back({"arith-no-partial-fun", opts.arith.arithNoPartialFun ? "true" : "false"});
11499
  res.push_back({"arith-prop-clauses", std::to_string(opts.arith.arithPropAsLemmaLength)});
11500
  { std::stringstream ss; ss << opts.arith.arithPropagationMode; res.push_back({"arith-prop", ss.str()}); }
11501
  res.push_back({"arith-rewrite-equalities", opts.arith.arithRewriteEq ? "true" : "false"});
11502
  res.push_back({"collect-pivot-stats", opts.arith.collectPivots ? "true" : "false"});
11503
  res.push_back({"cut-all-bounded", opts.arith.doCutAllBounded ? "true" : "false"});
11504
  res.push_back({"dio-decomps", opts.arith.exportDioDecompositions ? "true" : "false"});
11505
  res.push_back({"dio-repeat", opts.arith.dioRepeat ? "true" : "false"});
11506
  res.push_back({"dio-solver", opts.arith.arithDioSolver ? "true" : "false"});
11507
  res.push_back({"dio-turns", std::to_string(opts.arith.dioSolverTurns)});
11508
  { std::stringstream ss; ss << opts.arith.arithErrorSelectionRule; res.push_back({"error-selection-rule", ss.str()}); }
11509
  res.push_back({"fc-penalties", opts.arith.havePenalties ? "true" : "false"});
11510
  res.push_back({"heuristic-pivots", std::to_string(opts.arith.arithHeuristicPivots)});
11511
  res.push_back({"lemmas-on-replay-failure", opts.arith.replayFailureLemma ? "true" : "false"});
11512
  res.push_back({"maxCutsInContext", std::to_string(opts.arith.maxCutsInContext)});
11513
  res.push_back({"miplib-trick", opts.arith.arithMLTrick ? "true" : "false"});
11514
  res.push_back({"miplib-trick-subs", std::to_string(opts.arith.arithMLTrickSubstitutions)});
11515
  res.push_back({"new-prop", opts.arith.newProp ? "true" : "false"});
11516
  res.push_back({"nl-cad", opts.arith.nlCad ? "true" : "false"});
11517
  res.push_back({"nl-cad-initial", opts.arith.nlCadUseInitial ? "true" : "false"});
11518
  { std::stringstream ss; ss << opts.arith.nlCadLifting; res.push_back({"nl-cad-lift", ss.str()}); }
11519
  { std::stringstream ss; ss << opts.arith.nlCadProjection; res.push_back({"nl-cad-proj", ss.str()}); }
11520
  res.push_back({"nl-ext-ent-conf", opts.arith.nlExtEntailConflicts ? "true" : "false"});
11521
  res.push_back({"nl-ext-factor", opts.arith.nlExtFactor ? "true" : "false"});
11522
  res.push_back({"nl-ext-inc-prec", opts.arith.nlExtIncPrecision ? "true" : "false"});
11523
  res.push_back({"nl-ext-purify", opts.arith.nlExtPurify ? "true" : "false"});
11524
  res.push_back({"nl-ext-rbound", opts.arith.nlExtResBound ? "true" : "false"});
11525
  res.push_back({"nl-ext-rewrite", opts.arith.nlExtRewrites ? "true" : "false"});
11526
  res.push_back({"nl-ext-split-zero", opts.arith.nlExtSplitZero ? "true" : "false"});
11527
  res.push_back({"nl-ext-tf-taylor-deg", std::to_string(opts.arith.nlExtTfTaylorDegree)});
11528
  res.push_back({"nl-ext-tf-tplanes", opts.arith.nlExtTfTangentPlanes ? "true" : "false"});
11529
  res.push_back({"nl-ext-tplanes", opts.arith.nlExtTangentPlanes ? "true" : "false"});
11530
  res.push_back({"nl-ext-tplanes-interleave", opts.arith.nlExtTangentPlanesInterleave ? "true" : "false"});
11531
  { std::stringstream ss; ss << opts.arith.nlExt; res.push_back({"nl-ext", ss.str()}); }
11532
  res.push_back({"nl-icp", opts.arith.nlICP ? "true" : "false"});
11533
  { std::stringstream ss; ss << opts.arith.nlRlvMode; res.push_back({"nl-rlv", ss.str()}); }
11534
  res.push_back({"pb-rewrites", opts.arith.pbRewrites ? "true" : "false"});
11535
  res.push_back({"pivot-threshold", std::to_string(opts.arith.arithPivotThreshold)});
11536
  res.push_back({"pp-assert-max-sub-size", std::to_string(opts.arith.ppAssertMaxSubSize)});
11537
  res.push_back({"prop-row-length", std::to_string(opts.arith.arithPropagateMaxLength)});
11538
  res.push_back({"replay-early-close-depth", std::to_string(opts.arith.replayEarlyCloseDepths)});
11539
  res.push_back({"replay-failure-penalty", std::to_string(opts.arith.replayFailurePenalty)});
11540
  res.push_back({"replay-lemma-reject-cut", std::to_string(opts.arith.lemmaRejectCutSize)});
11541
  res.push_back({"replay-num-err-penalty", std::to_string(opts.arith.replayNumericFailurePenalty)});
11542
  res.push_back({"replay-reject-cut", std::to_string(opts.arith.replayRejectCutSize)});
11543
  res.push_back({"replay-soi-major-threshold-pen", std::to_string(opts.arith.soiApproxMajorFailurePen)});
11544
  res.push_back({"replay-soi-major-threshold", std::to_string(opts.arith.soiApproxMajorFailure)});
11545
  res.push_back({"replay-soi-minor-threshold-pen", std::to_string(opts.arith.soiApproxMinorFailurePen)});
11546
  res.push_back({"replay-soi-minor-threshold", std::to_string(opts.arith.soiApproxMinorFailure)});
11547
  res.push_back({"restrict-pivots", opts.arith.restrictedPivots ? "true" : "false"});
11548
  res.push_back({"revert-arith-models-on-unsat", opts.arith.revertArithModels ? "true" : "false"});
11549
  res.push_back({"rr-turns", std::to_string(opts.arith.rrTurns)});
11550
  res.push_back({"se-solve-int", opts.arith.trySolveIntStandardEffort ? "true" : "false"});
11551
  res.push_back({"simplex-check-period", std::to_string(opts.arith.arithSimplexCheckPeriod)});
11552
  res.push_back({"soi-qe", opts.arith.soiQuickExplain ? "true" : "false"});
11553
  res.push_back({"standard-effort-variable-order-pivots", std::to_string(opts.arith.arithStandardCheckVarOrderPivots)});
11554
  { std::stringstream ss; ss << opts.arith.arithUnateLemmaMode; res.push_back({"unate-lemmas", ss.str()}); }
11555
  res.push_back({"use-approx", opts.arith.useApprox ? "true" : "false"});
11556
  res.push_back({"use-fcsimplex", opts.arith.useFC ? "true" : "false"});
11557
  res.push_back({"use-soi", opts.arith.useSOI ? "true" : "false"});
11558
  res.push_back({"arrays-config", std::to_string(opts.arrays.arraysConfig)});
11559
  res.push_back({"arrays-eager-index", opts.arrays.arraysEagerIndexSplitting ? "true" : "false"});
11560
  res.push_back({"arrays-eager-lemmas", opts.arrays.arraysEagerLemmas ? "true" : "false"});
11561
  res.push_back({"arrays-exp", opts.arrays.arraysExp ? "true" : "false"});
11562
  res.push_back({"arrays-model-based", opts.arrays.arraysModelBased ? "true" : "false"});
11563
  res.push_back({"arrays-optimize-linear", opts.arrays.arraysOptimizeLinear ? "true" : "false"});
11564
  res.push_back({"arrays-prop", std::to_string(opts.arrays.arraysPropagate)});
11565
  res.push_back({"arrays-reduce-sharing", opts.arrays.arraysReduceSharing ? "true" : "false"});
11566
  res.push_back({"arrays-weak-equiv", opts.arrays.arraysWeakEquivalence ? "true" : "false"});
11567
  { std::stringstream ss; ss << opts.base.err; res.push_back({"err", ss.str()}); }
11568
  { std::stringstream ss; ss << opts.base.in; res.push_back({"in", ss.str()}); }
11569
  res.push_back({"incremental", opts.base.incrementalSolving ? "true" : "false"});
11570
  { std::stringstream ss; ss << opts.base.inputLanguage; res.push_back({"lang", ss.str()}); }
11571
  { std::stringstream ss; ss << opts.base.out; res.push_back({"out", ss.str()}); }
11572
  { std::stringstream ss; ss << opts.base.outputLanguage; res.push_back({"output-lang", ss.str()}); }
11573
  { std::stringstream ss; ss << opts.base.outputTag; res.push_back({"output", ss.str()}); }
11574
  res.push_back({"parse-only", opts.base.parseOnly ? "true" : "false"});
11575
  res.push_back({"preprocess-only", opts.base.preprocessOnly ? "true" : "false"});
11576
  res.push_back({"print-success", opts.base.printSuccess ? "true" : "false"});
11577
  res.push_back({"rlimit-per", std::to_string(opts.base.perCallResourceLimit)});
11578
  res.push_back({"rlimit", std::to_string(opts.base.cumulativeResourceLimit)});
11579
  res.push_back({"stats", opts.base.statistics ? "true" : "false"});
11580
  res.push_back({"stats-all", opts.base.statisticsAll ? "true" : "false"});
11581
  res.push_back({"stats-every-query", opts.base.statisticsEveryQuery ? "true" : "false"});
11582
  res.push_back({"stats-expert", opts.base.statisticsExpert ? "true" : "false"});
11583
  res.push_back({"tlimit-per", std::to_string(opts.base.perCallMillisecondLimit)});
11584
  res.push_back({"tlimit", std::to_string(opts.base.cumulativeMillisecondLimit)});
11585
  res.push_back({"verbosity", std::to_string(opts.base.verbosity)});
11586
  res.push_back({"bitblast-aig", opts.bv.bitvectorAig ? "true" : "false"});
11587
  { std::stringstream ss; ss << opts.bv.bitblastMode; res.push_back({"bitblast", ss.str()}); }
11588
  res.push_back({"bitwise-eq", opts.bv.bitwiseEq ? "true" : "false"});
11589
  { std::stringstream ss; ss << opts.bv.boolToBitvector; res.push_back({"bool-to-bv", ss.str()}); }
11590
  res.push_back({"bv-abstraction", opts.bv.bvAbstraction ? "true" : "false"});
11591
  res.push_back({"bv-aig-simp", opts.bv.bitvectorAigSimplifications});
11592
  res.push_back({"bv-alg-extf", opts.bv.bvAlgExtf ? "true" : "false"});
11593
  res.push_back({"bv-algebraic-budget", std::to_string(opts.bv.bitvectorAlgebraicBudget)});
11594
  res.push_back({"bv-algebraic-solver", opts.bv.bitvectorAlgebraicSolver ? "true" : "false"});
11595
  res.push_back({"bv-assert-input", opts.bv.bvAssertInput ? "true" : "false"});
11596
  res.push_back({"bv-eager-explanations", opts.bv.bvEagerExplanations ? "true" : "false"});
11597
  res.push_back({"bv-eq-solver", opts.bv.bitvectorEqualitySolver ? "true" : "false"});
11598
  res.push_back({"bv-extract-arith", opts.bv.bvExtractArithRewrite ? "true" : "false"});
11599
  res.push_back({"bv-gauss-elim", opts.bv.bvGaussElim ? "true" : "false"});
11600
  res.push_back({"bv-inequality-solver", opts.bv.bitvectorInequalitySolver ? "true" : "false"});
11601
  res.push_back({"bv-intro-pow2", opts.bv.bvIntroducePow2 ? "true" : "false"});
11602
  res.push_back({"bv-num-func", std::to_string(opts.bv.bvNumFunc)});
11603
  res.push_back({"bv-print-consts-as-indexed-symbols", opts.bv.bvPrintConstsAsIndexedSymbols ? "true" : "false"});
11604
  res.push_back({"bv-propagate", opts.bv.bitvectorPropagate ? "true" : "false"});
11605
  res.push_back({"bv-quick-xplain", opts.bv.bitvectorQuickXplain ? "true" : "false"});
11606
  { std::stringstream ss; ss << opts.bv.bvSatSolver; res.push_back({"bv-sat-solver", ss.str()}); }
11607
  res.push_back({"bv-skolemize", opts.bv.skolemizeArguments ? "true" : "false"});
11608
  { std::stringstream ss; ss << opts.bv.bvSolver; res.push_back({"bv-solver", ss.str()}); }
11609
  res.push_back({"bv-to-bool", opts.bv.bitvectorToBool ? "true" : "false"});
11610
  res.push_back({"cdt-bisimilar", opts.datatypes.cdtBisimilar ? "true" : "false"});
11611
  res.push_back({"dt-binary-split", opts.datatypes.dtBinarySplit ? "true" : "false"});
11612
  res.push_back({"dt-blast-splits", opts.datatypes.dtBlastSplits ? "true" : "false"});
11613
  res.push_back({"dt-cyclic", opts.datatypes.dtCyclic ? "true" : "false"});
11614
  res.push_back({"dt-force-assignment", opts.datatypes.dtForceAssignment ? "true" : "false"});
11615
  res.push_back({"dt-infer-as-lemmas", opts.datatypes.dtInferAsLemmas ? "true" : "false"});
11616
  res.push_back({"dt-nested-rec", opts.datatypes.dtNestedRec ? "true" : "false"});
11617
  res.push_back({"dt-polite-optimize", opts.datatypes.dtPoliteOptimize ? "true" : "false"});
11618
  res.push_back({"dt-rewrite-error-sel", opts.datatypes.dtRewriteErrorSel ? "true" : "false"});
11619
  res.push_back({"dt-share-sel", opts.datatypes.dtSharedSelectors ? "true" : "false"});
11620
  res.push_back({"sygus-abort-size", std::to_string(opts.datatypes.sygusAbortSize)});
11621
  res.push_back({"sygus-fair-max", opts.datatypes.sygusFairMax ? "true" : "false"});
11622
  { std::stringstream ss; ss << opts.datatypes.sygusFair; res.push_back({"sygus-fair", ss.str()}); }
11623
  res.push_back({"sygus-sym-break", opts.datatypes.sygusSymBreak ? "true" : "false"});
11624
  res.push_back({"sygus-sym-break-agg", opts.datatypes.sygusSymBreakAgg ? "true" : "false"});
11625
  res.push_back({"sygus-sym-break-dynamic", opts.datatypes.sygusSymBreakDynamic ? "true" : "false"});
11626
  res.push_back({"sygus-sym-break-lazy", opts.datatypes.sygusSymBreakLazy ? "true" : "false"});
11627
  res.push_back({"sygus-sym-break-pbe", opts.datatypes.sygusSymBreakPbe ? "true" : "false"});
11628
  res.push_back({"sygus-sym-break-rlv", opts.datatypes.sygusSymBreakRlv ? "true" : "false"});
11629
  res.push_back({"decision-random-weight", std::to_string(opts.decision.decisionRandomWeight)});
11630
  { std::stringstream ss; ss << opts.decision.decisionThreshold; res.push_back({"decision-threshold", ss.str()}); }
11631
  res.push_back({"decision-use-weight", opts.decision.decisionUseWeight ? "true" : "false"});
11632
  { std::stringstream ss; ss << opts.decision.decisionWeightInternal; res.push_back({"decision-weight-internal", ss.str()}); }
11633
  { std::stringstream ss; ss << opts.decision.decisionMode; res.push_back({"decision", ss.str()}); }
11634
  res.push_back({"jh-rlv-order", opts.decision.jhRlvOrder ? "true" : "false"});
11635
  { std::stringstream ss; ss << opts.decision.jhSkolemRlvMode; res.push_back({"jh-skolem-rlv", ss.str()}); }
11636
  { std::stringstream ss; ss << opts.decision.jhSkolemMode; res.push_back({"jh-skolem", ss.str()}); }
11637
  res.push_back({"dag-thresh", std::to_string(opts.expr.defaultDagThresh)});
11638
  res.push_back({"expr-depth", std::to_string(opts.expr.defaultExprDepth)});
11639
  res.push_back({"type-checking", opts.expr.typeChecking ? "true" : "false"});
11640
  res.push_back({"fp-exp", opts.fp.fpExp ? "true" : "false"});
11641
  res.push_back({"fp-lazy-wb", opts.fp.fpLazyWb ? "true" : "false"});
11642
  res.push_back({"dump-instantiations", opts.driver.dumpInstantiations ? "true" : "false"});
11643
  res.push_back({"dump-instantiations-debug", opts.driver.dumpInstantiationsDebug ? "true" : "false"});
11644
  res.push_back({"dump-models", opts.driver.dumpModels ? "true" : "false"});
11645
  res.push_back({"dump-proofs", opts.driver.dumpProofs ? "true" : "false"});
11646
  res.push_back({"dump-unsat-cores", opts.driver.dumpUnsatCores ? "true" : "false"});
11647
  res.push_back({"dump-unsat-cores-full", opts.driver.dumpUnsatCoresFull ? "true" : "false"});
11648
  res.push_back({"early-exit", opts.driver.earlyExit ? "true" : "false"});
11649
  res.push_back({"force-no-limit-cpu-while-dump", opts.driver.forceNoLimitCpuWhileDump ? "true" : "false"});
11650
  res.push_back({"help", opts.driver.help ? "true" : "false"});
11651
  res.push_back({"interactive", opts.driver.interactive ? "true" : "false"});
11652
  res.push_back({"interactive-prompt", opts.driver.interactivePrompt ? "true" : "false"});
11653
  res.push_back({"seed", std::to_string(opts.driver.seed)});
11654
  res.push_back({"segv-spin", opts.driver.segvSpin ? "true" : "false"});
11655
  res.push_back({"version", opts.driver.version ? "true" : "false"});
11656
  res.push_back({"filesystem-access", opts.parser.filesystemAccess ? "true" : "false"});
11657
  res.push_back({"force-logic", opts.parser.forceLogicString});
11658
  res.push_back({"global-declarations", opts.parser.globalDeclarations ? "true" : "false"});
11659
  res.push_back({"mmap", opts.parser.memoryMap ? "true" : "false"});
11660
  res.push_back({"semantic-checks", opts.parser.semanticChecks ? "true" : "false"});
11661
  res.push_back({"strict-parsing", opts.parser.strictParsing ? "true" : "false"});
11662
  res.push_back({"flatten-ho-chains", opts.printer.flattenHOChains ? "true" : "false"});
11663
  { std::stringstream ss; ss << opts.printer.instFormatMode; res.push_back({"inst-format", ss.str()}); }
11664
  { std::stringstream ss; ss << opts.printer.modelFormatMode; res.push_back({"model-format", ss.str()}); }
11665
  res.push_back({"print-inst-full", opts.printer.printInstFull ? "true" : "false"});
11666
  { std::stringstream ss; ss << opts.printer.printInstMode; res.push_back({"print-inst", ss.str()}); }
11667
  res.push_back({"proof-eager-checking", opts.proof.proofEagerChecking ? "true" : "false"});
11668
  { std::stringstream ss; ss << opts.proof.proofFormatMode; res.push_back({"proof-format-mode", ss.str()}); }
11669
  { std::stringstream ss; ss << opts.proof.proofGranularityMode; res.push_back({"proof-granularity", ss.str()}); }
11670
  res.push_back({"proof-pedantic", std::to_string(opts.proof.proofPedantic)});
11671
  res.push_back({"proof-print-conclusion", opts.proof.proofPrintConclusion ? "true" : "false"});
11672
  res.push_back({"minisat-dump-dimacs", opts.prop.minisatDumpDimacs ? "true" : "false"});
11673
  res.push_back({"minisat-elimination", opts.prop.minisatUseElim ? "true" : "false"});
11674
  res.push_back({"random-freq", std::to_string(opts.prop.satRandomFreq)});
11675
  res.push_back({"random-seed", std::to_string(opts.prop.satRandomSeed)});
11676
  res.push_back({"refine-conflicts", opts.prop.sat_refine_conflicts ? "true" : "false"});
11677
  res.push_back({"restart-int-base", std::to_string(opts.prop.satRestartFirst)});
11678
  res.push_back({"restart-int-inc", std::to_string(opts.prop.satRestartInc)});
11679
  res.push_back({"ag-miniscope-quant", opts.quantifiers.aggressiveMiniscopeQuant ? "true" : "false"});
11680
  { std::stringstream ss; ss << opts.quantifiers.cegisSample; res.push_back({"cegis-sample", ss.str()}); }
11681
  res.push_back({"cegqi", opts.quantifiers.cegqi ? "true" : "false"});
11682
  res.push_back({"cegqi-all", opts.quantifiers.cegqiAll ? "true" : "false"});
11683
  res.push_back({"cegqi-bv", opts.quantifiers.cegqiBv ? "true" : "false"});
11684
  res.push_back({"cegqi-bv-concat-inv", opts.quantifiers.cegqiBvConcInv ? "true" : "false"});
11685
  { std::stringstream ss; ss << opts.quantifiers.cegqiBvIneqMode; res.push_back({"cegqi-bv-ineq", ss.str()}); }
11686
  res.push_back({"cegqi-bv-interleave-value", opts.quantifiers.cegqiBvInterleaveValue ? "true" : "false"});
11687
  res.push_back({"cegqi-bv-linear", opts.quantifiers.cegqiBvLinearize ? "true" : "false"});
11688
  res.push_back({"cegqi-bv-rm-extract", opts.quantifiers.cegqiBvRmExtract ? "true" : "false"});
11689
  res.push_back({"cegqi-bv-solve-nl", opts.quantifiers.cegqiBvSolveNl ? "true" : "false"});
11690
  res.push_back({"cegqi-full", opts.quantifiers.cegqiFullEffort ? "true" : "false"});
11691
  res.push_back({"cegqi-innermost", opts.quantifiers.cegqiInnermost ? "true" : "false"});
11692
  res.push_back({"cegqi-midpoint", opts.quantifiers.cegqiMidpoint ? "true" : "false"});
11693
  res.push_back({"cegqi-min-bounds", opts.quantifiers.cegqiMinBounds ? "true" : "false"});
11694
  res.push_back({"cegqi-model", opts.quantifiers.cegqiModel ? "true" : "false"});
11695
  res.push_back({"cegqi-multi-inst", opts.quantifiers.cegqiMultiInst ? "true" : "false"});
11696
  res.push_back({"cegqi-nested-qe", opts.quantifiers.cegqiNestedQE ? "true" : "false"});
11697
  res.push_back({"cegqi-nopt", opts.quantifiers.cegqiNopt ? "true" : "false"});
11698
  res.push_back({"cegqi-repeat-lit", opts.quantifiers.cegqiRepeatLit ? "true" : "false"});
11699
  res.push_back({"cegqi-round-up-lia", opts.quantifiers.cegqiRoundUpLowerLia ? "true" : "false"});
11700
  res.push_back({"cegqi-sat", opts.quantifiers.cegqiSat ? "true" : "false"});
11701
  res.push_back({"cegqi-use-inf-int", opts.quantifiers.cegqiUseInfInt ? "true" : "false"});
11702
  res.push_back({"cegqi-use-inf-real", opts.quantifiers.cegqiUseInfReal ? "true" : "false"});
11703
  res.push_back({"cond-var-split-agg-quant", opts.quantifiers.condVarSplitQuantAgg ? "true" : "false"});
11704
  res.push_back({"cond-var-split-quant", opts.quantifiers.condVarSplitQuant ? "true" : "false"});
11705
  res.push_back({"conjecture-filter-active-terms", opts.quantifiers.conjectureFilterActiveTerms ? "true" : "false"});
11706
  res.push_back({"conjecture-filter-canonical", opts.quantifiers.conjectureFilterCanonical ? "true" : "false"});
11707
  res.push_back({"conjecture-filter-model", opts.quantifiers.conjectureFilterModel ? "true" : "false"});
11708
  res.push_back({"conjecture-gen", opts.quantifiers.conjectureGen ? "true" : "false"});
11709
  res.push_back({"conjecture-gen-gt-enum", std::to_string(opts.quantifiers.conjectureGenGtEnum)});
11710
  res.push_back({"conjecture-gen-max-depth", std::to_string(opts.quantifiers.conjectureGenMaxDepth)});
11711
  res.push_back({"conjecture-gen-per-round", std::to_string(opts.quantifiers.conjectureGenPerRound)});
11712
  res.push_back({"conjecture-gen-uee-intro", opts.quantifiers.conjectureUeeIntro ? "true" : "false"});
11713
  res.push_back({"conjecture-no-filter", opts.quantifiers.conjectureNoFilter ? "true" : "false"});
11714
  res.push_back({"dt-stc-ind", opts.quantifiers.dtStcInduction ? "true" : "false"});
11715
  res.push_back({"dt-var-exp-quant", opts.quantifiers.dtVarExpandQuant ? "true" : "false"});
11716
  res.push_back({"e-matching", opts.quantifiers.eMatching ? "true" : "false"});
11717
  res.push_back({"elim-taut-quant", opts.quantifiers.elimTautQuant ? "true" : "false"});
11718
  res.push_back({"ext-rewrite-quant", opts.quantifiers.extRewriteQuant ? "true" : "false"});
11719
  res.push_back({"finite-model-find", opts.quantifiers.finiteModelFind ? "true" : "false"});
11720
  res.push_back({"fmf-bound", opts.quantifiers.fmfBound ? "true" : "false"});
11721
  res.push_back({"fmf-bound-int", opts.quantifiers.fmfBoundInt ? "true" : "false"});
11722
  res.push_back({"fmf-bound-lazy", opts.quantifiers.fmfBoundLazy ? "true" : "false"});
11723
  res.push_back({"fmf-fmc-simple", opts.quantifiers.fmfFmcSimple ? "true" : "false"});
11724
  res.push_back({"fmf-fresh-dc", opts.quantifiers.fmfFreshDistConst ? "true" : "false"});
11725
  res.push_back({"fmf-fun", opts.quantifiers.fmfFunWellDefined ? "true" : "false"});
11726
  res.push_back({"fmf-fun-rlv", opts.quantifiers.fmfFunWellDefinedRelevant ? "true" : "false"});
11727
  res.push_back({"fmf-inst-engine", opts.quantifiers.fmfInstEngine ? "true" : "false"});
11728
  res.push_back({"fmf-type-completion-thresh", std::to_string(opts.quantifiers.fmfTypeCompletionThresh)});
11729
  res.push_back({"fs-interleave", opts.quantifiers.fullSaturateInterleave ? "true" : "false"});
11730
  res.push_back({"fs-stratify", opts.quantifiers.fullSaturateStratify ? "true" : "false"});
11731
  res.push_back({"fs-sum", opts.quantifiers.fullSaturateSum ? "true" : "false"});
11732
  res.push_back({"full-saturate-quant", opts.quantifiers.fullSaturateQuant ? "true" : "false"});
11733
  res.push_back({"full-saturate-quant-limit", std::to_string(opts.quantifiers.fullSaturateLimit)});
11734
  res.push_back({"full-saturate-quant-rd", opts.quantifiers.fullSaturateQuantRd ? "true" : "false"});
11735
  res.push_back({"global-negate", opts.quantifiers.globalNegate ? "true" : "false"});
11736
  res.push_back({"ho-elim", opts.quantifiers.hoElim ? "true" : "false"});
11737
  res.push_back({"ho-elim-store-ax", opts.quantifiers.hoElimStoreAx ? "true" : "false"});
11738
  res.push_back({"ho-matching", opts.quantifiers.hoMatching ? "true" : "false"});
11739
  res.push_back({"ho-matching-var-priority", opts.quantifiers.hoMatchingVarArgPriority ? "true" : "false"});
11740
  res.push_back({"ho-merge-term-db", opts.quantifiers.hoMergeTermDb ? "true" : "false"});
11741
  res.push_back({"increment-triggers", opts.quantifiers.incrementTriggers ? "true" : "false"});
11742
  res.push_back({"inst-level-input-only", opts.quantifiers.instLevelInputOnly ? "true" : "false"});
11743
  res.push_back({"inst-max-level", std::to_string(opts.quantifiers.instMaxLevel)});
11744
  res.push_back({"inst-max-rounds", std::to_string(opts.quantifiers.instMaxRounds)});
11745
  res.push_back({"inst-no-entail", opts.quantifiers.instNoEntail ? "true" : "false"});
11746
  res.push_back({"inst-when-phase", std::to_string(opts.quantifiers.instWhenPhase)});
11747
  res.push_back({"inst-when-strict-interleave", opts.quantifiers.instWhenStrictInterleave ? "true" : "false"});
11748
  res.push_back({"inst-when-tc-first", opts.quantifiers.instWhenTcFirst ? "true" : "false"});
11749
  { std::stringstream ss; ss << opts.quantifiers.instWhenMode; res.push_back({"inst-when", ss.str()}); }
11750
  res.push_back({"int-wf-ind", opts.quantifiers.intWfInduction ? "true" : "false"});
11751
  res.push_back({"ite-dtt-split-quant", opts.quantifiers.iteDtTesterSplitQuant ? "true" : "false"});
11752
  { std::stringstream ss; ss << opts.quantifiers.iteLiftQuant; res.push_back({"ite-lift-quant", ss.str()}); }
11753
  { std::stringstream ss; ss << opts.quantifiers.literalMatchMode; res.push_back({"literal-matching", ss.str()}); }
11754
  res.push_back({"macros-quant", opts.quantifiers.macrosQuant ? "true" : "false"});
11755
  { std::stringstream ss; ss << opts.quantifiers.macrosQuantMode; res.push_back({"macros-quant-mode", ss.str()}); }
11756
  res.push_back({"mbqi-interleave", opts.quantifiers.mbqiInterleave ? "true" : "false"});
11757
  res.push_back({"mbqi-one-inst-per-round", opts.quantifiers.fmfOneInstPerRound ? "true" : "false"});
11758
  { std::stringstream ss; ss << opts.quantifiers.mbqiMode; res.push_back({"mbqi", ss.str()}); }
11759
  res.push_back({"miniscope-quant", opts.quantifiers.miniscopeQuant ? "true" : "false"});
11760
  res.push_back({"miniscope-quant-fv", opts.quantifiers.miniscopeQuantFreeVar ? "true" : "false"});
11761
  res.push_back({"multi-trigger-cache", opts.quantifiers.multiTriggerCache ? "true" : "false"});
11762
  res.push_back({"multi-trigger-linear", opts.quantifiers.multiTriggerLinear ? "true" : "false"});
11763
  res.push_back({"multi-trigger-priority", opts.quantifiers.multiTriggerPriority ? "true" : "false"});
11764
  res.push_back({"multi-trigger-when-single", opts.quantifiers.multiTriggerWhenSingle ? "true" : "false"});
11765
  res.push_back({"partial-triggers", opts.quantifiers.partialTriggers ? "true" : "false"});
11766
  res.push_back({"pool-inst", opts.quantifiers.poolInst ? "true" : "false"});
11767
  res.push_back({"pre-skolem-quant", opts.quantifiers.preSkolemQuant ? "true" : "false"});
11768
  res.push_back({"pre-skolem-quant-agg", opts.quantifiers.preSkolemQuantAgg ? "true" : "false"});
11769
  res.push_back({"pre-skolem-quant-nested", opts.quantifiers.preSkolemQuantNested ? "true" : "false"});
11770
  res.push_back({"prenex-quant-user", opts.quantifiers.prenexQuantUser ? "true" : "false"});
11771
  { std::stringstream ss; ss << opts.quantifiers.prenexQuant; res.push_back({"prenex-quant", ss.str()}); }
11772
  res.push_back({"purify-triggers", opts.quantifiers.purifyTriggers ? "true" : "false"});
11773
  res.push_back({"qcf-all-conflict", opts.quantifiers.qcfAllConflict ? "true" : "false"});
11774
  res.push_back({"qcf-eager-check-rd", opts.quantifiers.qcfEagerCheckRd ? "true" : "false"});
11775
  res.push_back({"qcf-eager-test", opts.quantifiers.qcfEagerTest ? "true" : "false"});
11776
  res.push_back({"qcf-nested-conflict", opts.quantifiers.qcfNestedConflict ? "true" : "false"});
11777
  res.push_back({"qcf-skip-rd", opts.quantifiers.qcfSkipRd ? "true" : "false"});
11778
  res.push_back({"qcf-tconstraint", opts.quantifiers.qcfTConstraint ? "true" : "false"});
11779
  res.push_back({"qcf-vo-exp", opts.quantifiers.qcfVoExp ? "true" : "false"});
11780
  res.push_back({"quant-alpha-equiv", opts.quantifiers.quantAlphaEquiv ? "true" : "false"});
11781
  res.push_back({"quant-cf", opts.quantifiers.quantConflictFind ? "true" : "false"});
11782
  { std::stringstream ss; ss << opts.quantifiers.qcfMode; res.push_back({"quant-cf-mode", ss.str()}); }
11783
  { std::stringstream ss; ss << opts.quantifiers.qcfWhenMode; res.push_back({"quant-cf-when", ss.str()}); }
11784
  { std::stringstream ss; ss << opts.quantifiers.quantDynamicSplit; res.push_back({"quant-dsplit-mode", ss.str()}); }
11785
  res.push_back({"quant-fun-wd", opts.quantifiers.quantFunWellDefined ? "true" : "false"});
11786
  res.push_back({"quant-ind", opts.quantifiers.quantInduction ? "true" : "false"});
11787
  { std::stringstream ss; ss << opts.quantifiers.quantRepMode; res.push_back({"quant-rep-mode", ss.str()}); }
11788
  res.push_back({"quant-split", opts.quantifiers.quantSplit ? "true" : "false"});
11789
  res.push_back({"register-quant-body-terms", opts.quantifiers.registerQuantBodyTerms ? "true" : "false"});
11790
  res.push_back({"relational-triggers", opts.quantifiers.relationalTriggers ? "true" : "false"});
11791
  res.push_back({"relevant-triggers", opts.quantifiers.relevantTriggers ? "true" : "false"});
11792
  res.push_back({"sygus", opts.quantifiers.sygus ? "true" : "false"});
11793
  res.push_back({"sygus-active-gen-cfactor", std::to_string(opts.quantifiers.sygusActiveGenEnumConsts)});
11794
  { std::stringstream ss; ss << opts.quantifiers.sygusActiveGenMode; res.push_back({"sygus-active-gen", ss.str()}); }
11795
  res.push_back({"sygus-add-const-grammar", opts.quantifiers.sygusAddConstGrammar ? "true" : "false"});
11796
  res.push_back({"sygus-arg-relevant", opts.quantifiers.sygusArgRelevant ? "true" : "false"});
11797
  res.push_back({"sygus-auto-unfold", opts.quantifiers.sygusInvAutoUnfold ? "true" : "false"});
11798
  res.push_back({"sygus-bool-ite-return-const", opts.quantifiers.sygusBoolIteReturnConst ? "true" : "false"});
11799
  res.push_back({"sygus-core-connective", opts.quantifiers.sygusCoreConnective ? "true" : "false"});
11800
  res.push_back({"sygus-crepair-abort", opts.quantifiers.sygusConstRepairAbort ? "true" : "false"});
11801
  res.push_back({"sygus-eval-opt", opts.quantifiers.sygusEvalOpt ? "true" : "false"});
11802
  res.push_back({"sygus-eval-unfold", opts.quantifiers.sygusEvalUnfold ? "true" : "false"});
11803
  res.push_back({"sygus-eval-unfold-bool", opts.quantifiers.sygusEvalUnfoldBool ? "true" : "false"});
11804
  res.push_back({"sygus-expr-miner-check-timeout", std::to_string(opts.quantifiers.sygusExprMinerCheckTimeout)});
11805
  res.push_back({"sygus-ext-rew", opts.quantifiers.sygusExtRew ? "true" : "false"});
11806
  res.push_back({"sygus-filter-sol-rev", opts.quantifiers.sygusFilterSolRevSubsume ? "true" : "false"});
11807
  { std::stringstream ss; ss << opts.quantifiers.sygusFilterSolMode; res.push_back({"sygus-filter-sol", ss.str()}); }
11808
  { std::stringstream ss; ss << opts.quantifiers.sygusGrammarConsMode; res.push_back({"sygus-grammar-cons", ss.str()}); }
11809
  res.push_back({"sygus-grammar-norm", opts.quantifiers.sygusGrammarNorm ? "true" : "false"});
11810
  res.push_back({"sygus-inference", opts.quantifiers.sygusInference ? "true" : "false"});
11811
  res.push_back({"sygus-inst", opts.quantifiers.sygusInst ? "true" : "false"});
11812
  { std::stringstream ss; ss << opts.quantifiers.sygusInstMode; res.push_back({"sygus-inst-mode", ss.str()}); }
11813
  { std::stringstream ss; ss << opts.quantifiers.sygusInstScope; res.push_back({"sygus-inst-scope", ss.str()}); }
11814
  { std::stringstream ss; ss << opts.quantifiers.sygusInstTermSel; res.push_back({"sygus-inst-term-sel", ss.str()}); }
11815
  res.push_back({"sygus-inv-templ-when-sg", opts.quantifiers.sygusInvTemplWhenSyntax ? "true" : "false"});
11816
  { std::stringstream ss; ss << opts.quantifiers.sygusInvTemplMode; res.push_back({"sygus-inv-templ", ss.str()}); }
11817
  res.push_back({"sygus-min-grammar", opts.quantifiers.sygusMinGrammar ? "true" : "false"});
11818
  res.push_back({"sygus-pbe", opts.quantifiers.sygusUnifPbe ? "true" : "false"});
11819
  res.push_back({"sygus-pbe-multi-fair", opts.quantifiers.sygusPbeMultiFair ? "true" : "false"});
11820
  res.push_back({"sygus-pbe-multi-fair-diff", std::to_string(opts.quantifiers.sygusPbeMultiFairDiff)});
11821
  res.push_back({"sygus-qe-preproc", opts.quantifiers.sygusQePreproc ? "true" : "false"});
11822
  res.push_back({"sygus-query-gen", opts.quantifiers.sygusQueryGen ? "true" : "false"});
11823
  res.push_back({"sygus-query-gen-check", opts.quantifiers.sygusQueryGenCheck ? "true" : "false"});
11824
  { std::stringstream ss; ss << opts.quantifiers.sygusQueryGenDumpFiles; res.push_back({"sygus-query-gen-dump-files", ss.str()}); }
11825
  res.push_back({"sygus-query-gen-thresh", std::to_string(opts.quantifiers.sygusQueryGenThresh)});
11826
  res.push_back({"sygus-rec-fun", opts.quantifiers.sygusRecFun ? "true" : "false"});
11827
  res.push_back({"sygus-rec-fun-eval-limit", std::to_string(opts.quantifiers.sygusRecFunEvalLimit)});
11828
  res.push_back({"sygus-repair-const", opts.quantifiers.sygusRepairConst ? "true" : "false"});
11829
  res.push_back({"sygus-repair-const-timeout", std::to_string(opts.quantifiers.sygusRepairConstTimeout)});
11830
  res.push_back({"sygus-rr", opts.quantifiers.sygusRew ? "true" : "false"});
11831
  res.push_back({"sygus-rr-synth", opts.quantifiers.sygusRewSynth ? "true" : "false"});
11832
  res.push_back({"sygus-rr-synth-accel", opts.quantifiers.sygusRewSynthAccel ? "true" : "false"});
11833
  res.push_back({"sygus-rr-synth-check", opts.quantifiers.sygusRewSynthCheck ? "true" : "false"});
11834
  res.push_back({"sygus-rr-synth-filter-cong", opts.quantifiers.sygusRewSynthFilterCong ? "true" : "false"});
11835
  res.push_back({"sygus-rr-synth-filter-match", opts.quantifiers.sygusRewSynthFilterMatch ? "true" : "false"});
11836
  res.push_back({"sygus-rr-synth-filter-nl", opts.quantifiers.sygusRewSynthFilterNonLinear ? "true" : "false"});
11837
  res.push_back({"sygus-rr-synth-filter-order", opts.quantifiers.sygusRewSynthFilterOrder ? "true" : "false"});
11838
  res.push_back({"sygus-rr-synth-input", opts.quantifiers.sygusRewSynthInput ? "true" : "false"});
11839
  res.push_back({"sygus-rr-synth-input-nvars", std::to_string(opts.quantifiers.sygusRewSynthInputNVars)});
11840
  res.push_back({"sygus-rr-synth-input-use-bool", opts.quantifiers.sygusRewSynthInputUseBool ? "true" : "false"});
11841
  res.push_back({"sygus-rr-synth-rec", opts.quantifiers.sygusRewSynthRec ? "true" : "false"});
11842
  res.push_back({"sygus-rr-verify", opts.quantifiers.sygusRewVerify ? "true" : "false"});
11843
  res.push_back({"sygus-rr-verify-abort", opts.quantifiers.sygusRewVerifyAbort ? "true" : "false"});
11844
  res.push_back({"sygus-sample-fp-uniform", opts.quantifiers.sygusSampleFpUniform ? "true" : "false"});
11845
  res.push_back({"sygus-sample-grammar", opts.quantifiers.sygusSampleGrammar ? "true" : "false"});
11846
  res.push_back({"sygus-samples", std::to_string(opts.quantifiers.sygusSamples)});
11847
  res.push_back({"sygus-si-abort", opts.quantifiers.cegqiSingleInvAbort ? "true" : "false"});
11848
  res.push_back({"sygus-si-partial", opts.quantifiers.cegqiSingleInvPartial ? "true" : "false"});
11849
  res.push_back({"sygus-si-rcons-limit", std::to_string(opts.quantifiers.cegqiSingleInvReconstructLimit)});
11850
  { std::stringstream ss; ss << opts.quantifiers.cegqiSingleInvReconstruct; res.push_back({"sygus-si-rcons", ss.str()}); }
11851
  res.push_back({"sygus-si-reconstruct-const", opts.quantifiers.cegqiSingleInvReconstructConst ? "true" : "false"});
11852
  { std::stringstream ss; ss << opts.quantifiers.cegqiSingleInvMode; res.push_back({"sygus-si", ss.str()}); }
11853
  res.push_back({"sygus-stream", opts.quantifiers.sygusStream ? "true" : "false"});
11854
  res.push_back({"sygus-templ-embed-grammar", opts.quantifiers.sygusTemplEmbedGrammar ? "true" : "false"});
11855
  res.push_back({"sygus-unif-cond-independent-no-repeat-sol", opts.quantifiers.sygusUnifCondIndNoRepeatSol ? "true" : "false"});
11856
  { std::stringstream ss; ss << opts.quantifiers.sygusUnifPi; res.push_back({"sygus-unif-pi", ss.str()}); }
11857
  res.push_back({"sygus-unif-shuffle-cond", opts.quantifiers.sygusUnifShuffleCond ? "true" : "false"});
11858
  res.push_back({"sygus-verify-inst-max-rounds", std::to_string(opts.quantifiers.sygusVerifyInstMaxRounds)});
11859
  res.push_back({"term-db-cd", opts.quantifiers.termDbCd ? "true" : "false"});
11860
  { std::stringstream ss; ss << opts.quantifiers.termDbMode; res.push_back({"term-db-mode", ss.str()}); }
11861
  { std::stringstream ss; ss << opts.quantifiers.triggerActiveSelMode; res.push_back({"trigger-active-sel", ss.str()}); }
11862
  { std::stringstream ss; ss << opts.quantifiers.triggerSelMode; res.push_back({"trigger-sel", ss.str()}); }
11863
  { std::stringstream ss; ss << opts.quantifiers.userPatternsQuant; res.push_back({"user-pat", ss.str()}); }
11864
  res.push_back({"var-elim-quant", opts.quantifiers.varElimQuant ? "true" : "false"});
11865
  res.push_back({"var-ineq-elim-quant", opts.quantifiers.varIneqElimQuant ? "true" : "false"});
11866
  res.push_back({"sep-check-neg", opts.sep.sepCheckNeg ? "true" : "false"});
11867
  res.push_back({"sep-child-refine", opts.sep.sepChildRefine ? "true" : "false"});
11868
  res.push_back({"sep-deq-c", opts.sep.sepDisequalC ? "true" : "false"});
11869
  res.push_back({"sep-exp", opts.sep.sepExp ? "true" : "false"});
11870
  res.push_back({"sep-min-refine", opts.sep.sepMinimalRefine ? "true" : "false"});
11871
  res.push_back({"sep-pre-skolem-emp", opts.sep.sepPreSkolemEmp ? "true" : "false"});
11872
  res.push_back({"sets-ext", opts.sets.setsExt ? "true" : "false"});
11873
  res.push_back({"sets-infer-as-lemmas", opts.sets.setsInferAsLemmas ? "true" : "false"});
11874
  res.push_back({"sets-proxy-lemmas", opts.sets.setsProxyLemmas ? "true" : "false"});
11875
  res.push_back({"abstract-values", opts.smt.abstractValues ? "true" : "false"});
11876
  res.push_back({"ackermann", opts.smt.ackermann ? "true" : "false"});
11877
  { std::stringstream ss; ss << opts.smt.blockModelsMode; res.push_back({"block-models", ss.str()}); }
11878
  res.push_back({"bvand-integer-granularity", std::to_string(opts.smt.BVAndIntegerGranularity)});
11879
  res.push_back({"check-abducts", opts.smt.checkAbducts ? "true" : "false"});
11880
  res.push_back({"check-interpols", opts.smt.checkInterpols ? "true" : "false"});
11881
  res.push_back({"check-models", opts.smt.checkModels ? "true" : "false"});
11882
  res.push_back({"check-proofs", opts.smt.checkProofs ? "true" : "false"});
11883
  res.push_back({"check-synth-sol", opts.smt.checkSynthSol ? "true" : "false"});
11884
  res.push_back({"check-unsat-cores", opts.smt.checkUnsatCores ? "true" : "false"});
11885
  res.push_back({"debug-check-models", opts.smt.debugCheckModels ? "true" : "false"});
11886
  { std::stringstream ss; ss << opts.smt.dumpToFileName; res.push_back({"dump-to", ss.str()}); }
11887
  res.push_back({"dump", opts.smt.dumpModeString});
11888
  res.push_back({"early-ite-removal", opts.smt.earlyIteRemoval ? "true" : "false"});
11889
  res.push_back({"expand-definitions", opts.smt.expandDefinitions ? "true" : "false"});
11890
  res.push_back({"ext-rew-prep", opts.smt.extRewPrep ? "true" : "false"});
11891
  res.push_back({"ext-rew-prep-agg", opts.smt.extRewPrepAgg ? "true" : "false"});
11892
  res.push_back({"foreign-theory-rewrite", opts.smt.foreignTheoryRewrite ? "true" : "false"});
11893
  { std::stringstream ss; ss << opts.smt.iandMode; res.push_back({"iand-mode", ss.str()}); }
11894
  res.push_back({"interactive-mode", opts.smt.interactiveMode ? "true" : "false"});
11895
  res.push_back({"ite-simp", opts.smt.doITESimp ? "true" : "false"});
11896
  res.push_back({"learned-rewrite", opts.smt.learnedRewrite ? "true" : "false"});
11897
  res.push_back({"minimal-unsat-cores", opts.smt.minimalUnsatCores ? "true" : "false"});
11898
  { std::stringstream ss; ss << opts.smt.modelCoresMode; res.push_back({"model-cores", ss.str()}); }
11899
  { std::stringstream ss; ss << opts.smt.modelUninterpPrint; res.push_back({"model-u-print", ss.str()}); }
11900
  res.push_back({"model-witness-value", opts.smt.modelWitnessValue ? "true" : "false"});
11901
  res.push_back({"on-repeat-ite-simp", opts.smt.doITESimpOnRepeat ? "true" : "false"});
11902
  res.push_back({"produce-abducts", opts.smt.produceAbducts ? "true" : "false"});
11903
  res.push_back({"produce-assertions", opts.smt.produceAssertions ? "true" : "false"});
11904
  res.push_back({"produce-assignments", opts.smt.produceAssignments ? "true" : "false"});
11905
  { std::stringstream ss; ss << opts.smt.produceInterpols; res.push_back({"produce-interpols", ss.str()}); }
11906
  res.push_back({"produce-models", opts.smt.produceModels ? "true" : "false"});
11907
  res.push_back({"produce-proofs", opts.smt.produceProofs ? "true" : "false"});
11908
  res.push_back({"produce-unsat-assumptions", opts.smt.unsatAssumptions ? "true" : "false"});
11909
  res.push_back({"produce-unsat-cores", opts.smt.unsatCores ? "true" : "false"});
11910
  res.push_back({"repeat-simp", opts.smt.repeatSimp ? "true" : "false"});
11911
  res.push_back({"simp-ite-compress", opts.smt.compressItes ? "true" : "false"});
11912
  res.push_back({"simp-ite-hunt-zombies", std::to_string(opts.smt.zombieHuntThreshold)});
11913
  res.push_back({"simp-with-care", opts.smt.simplifyWithCareEnabled ? "true" : "false"});
11914
  { std::stringstream ss; ss << opts.smt.simplificationMode; res.push_back({"simplification", ss.str()}); }
11915
  { std::stringstream ss; ss << opts.smt.solveBVAsInt; res.push_back({"solve-bv-as-int", ss.str()}); }
11916
  res.push_back({"solve-int-as-bv", std::to_string(opts.smt.solveIntAsBV)});
11917
  res.push_back({"solve-real-as-int", opts.smt.solveRealAsInt ? "true" : "false"});
11918
  res.push_back({"sort-inference", opts.smt.sortInference ? "true" : "false"});
11919
  res.push_back({"static-learning", opts.smt.doStaticLearning ? "true" : "false"});
11920
  { std::stringstream ss; ss << opts.smt.sygusOut; res.push_back({"sygus-out", ss.str()}); }
11921
  res.push_back({"sygus-print-callbacks", opts.smt.sygusPrintCallbacks ? "true" : "false"});
11922
  res.push_back({"unconstrained-simp", opts.smt.unconstrainedSimp ? "true" : "false"});
11923
  { std::stringstream ss; ss << opts.smt.unsatCoresMode; res.push_back({"unsat-cores-mode", ss.str()}); }
11924
  res.push_back({"re-elim", opts.strings.regExpElim ? "true" : "false"});
11925
  res.push_back({"re-elim-agg", opts.strings.regExpElimAgg ? "true" : "false"});
11926
  { std::stringstream ss; ss << opts.strings.stringRegExpInterMode; res.push_back({"re-inter-mode", ss.str()}); }
11927
  res.push_back({"strings-check-entail-len", opts.strings.stringCheckEntailLen ? "true" : "false"});
11928
  res.push_back({"strings-eager", opts.strings.stringEager ? "true" : "false"});
11929
  res.push_back({"strings-eager-eval", opts.strings.stringEagerEval ? "true" : "false"});
11930
  res.push_back({"strings-eager-len", opts.strings.stringEagerLen ? "true" : "false"});
11931
  res.push_back({"strings-exp", opts.strings.stringExp ? "true" : "false"});
11932
  res.push_back({"strings-ff", opts.strings.stringFlatForms ? "true" : "false"});
11933
  res.push_back({"strings-fmf", opts.strings.stringFMF ? "true" : "false"});
11934
  res.push_back({"strings-guess-model", opts.strings.stringGuessModel ? "true" : "false"});
11935
  res.push_back({"strings-infer-as-lemmas", opts.strings.stringInferAsLemmas ? "true" : "false"});
11936
  res.push_back({"strings-infer-sym", opts.strings.stringInferSym ? "true" : "false"});
11937
  res.push_back({"strings-lazy-pp", opts.strings.stringLazyPreproc ? "true" : "false"});
11938
  res.push_back({"strings-len-norm", opts.strings.stringLenNorm ? "true" : "false"});
11939
  res.push_back({"strings-lprop-csp", opts.strings.stringLenPropCsp ? "true" : "false"});
11940
  res.push_back({"strings-min-prefix-explain", opts.strings.stringMinPrefixExplain ? "true" : "false"});
11941
  { std::stringstream ss; ss << opts.strings.stringProcessLoopMode; res.push_back({"strings-process-loop-mode", ss.str()}); }
11942
  res.push_back({"strings-rexplain-lemmas", opts.strings.stringRExplainLemmas ? "true" : "false"});
11943
  res.push_back({"strings-unified-vspt", opts.strings.stringUnifiedVSpt ? "true" : "false"});
11944
  res.push_back({"assign-function-values", opts.theory.assignFunctionValues ? "true" : "false"});
11945
  res.push_back({"condense-function-values", opts.theory.condenseFunctionValues ? "true" : "false"});
11946
  { std::stringstream ss; ss << opts.theory.eeMode; res.push_back({"ee-mode", ss.str()}); }
11947
  res.push_back({"relevance-filter", opts.theory.relevanceFilter ? "true" : "false"});
11948
  { std::stringstream ss; ss << opts.theory.tcMode; res.push_back({"tc-mode", ss.str()}); }
11949
  { std::stringstream ss; ss << opts.theory.theoryOfMode; res.push_back({"theoryof-mode", ss.str()}); }
11950
  res.push_back({"symmetry-breaker", opts.uf.ufSymmetryBreaker ? "true" : "false"});
11951
  res.push_back({"uf-ho", opts.uf.ufHo ? "true" : "false"});
11952
  res.push_back({"uf-ho-ext", opts.uf.ufHoExt ? "true" : "false"});
11953
  res.push_back({"uf-ss-abort-card", std::to_string(opts.uf.ufssAbortCardinality)});
11954
  res.push_back({"uf-ss-fair", opts.uf.ufssFairness ? "true" : "false"});
11955
  res.push_back({"uf-ss-fair-monotone", opts.uf.ufssFairnessMonotone ? "true" : "false"});
11956
  res.push_back({"uf-ss-totality-limited", std::to_string(opts.uf.ufssTotalityLimited)});
11957
  res.push_back({"uf-ss-totality-sym-break", opts.uf.ufssTotalitySymBreak ? "true" : "false"});
11958
  { std::stringstream ss; ss << opts.uf.ufssMode; res.push_back({"uf-ss", ss.str()}); }
11959
11960
  return res;
11961
}
11962
11963
2
std::vector<std::string> getNames()
11964
{
11965
  return {
11966
"abstract-values", "ackermann", "ag-miniscope-quant", "approx-branch-depth",
11967
"arith-brab", "arith-cong-man", "arith-eq-solver", "arith-no-partial-fun",
11968
"arith-prop", "arith-prop-clauses", "arith-rewrite-equalities", "arrays-config",
11969
"arrays-eager-index", "arrays-eager-lemmas", "arrays-exp", "arrays-model-based",
11970
"arrays-optimize-linear", "arrays-prop", "arrays-reduce-sharing",
11971
"arrays-weak-equiv", "assign-function-values", "bitblast", "bitblast-aig",
11972
"bitwise-eq", "block-models", "bool-to-bv", "bv-abstraction", "bv-aig-simp",
11973
"bv-alg-extf", "bv-algebraic-budget", "bv-algebraic-solver", "bv-assert-input",
11974
"bv-eager-explanations", "bv-eq-solver", "bv-extract-arith", "bv-gauss-elim",
11975
"bv-inequality-solver", "bv-intro-pow2", "bv-num-func",
11976
"bv-print-consts-as-indexed-symbols", "bv-propagate", "bv-quick-xplain",
11977
"bv-sat-solver", "bv-skolemize", "bv-solver", "bv-to-bool",
11978
"bvand-integer-granularity", "cdt-bisimilar", "cegis-sample", "cegqi",
11979
"cegqi-all", "cegqi-bv", "cegqi-bv-concat-inv", "cegqi-bv-ineq",
11980
"cegqi-bv-interleave-value", "cegqi-bv-linear", "cegqi-bv-rm-extract",
11981
"cegqi-bv-solve-nl", "cegqi-full", "cegqi-innermost", "cegqi-midpoint",
11982
"cegqi-min-bounds", "cegqi-model", "cegqi-multi-inst", "cegqi-nested-qe",
11983
"cegqi-nopt", "cegqi-repeat-lit", "cegqi-round-up-lia", "cegqi-sat",
11984
"cegqi-use-inf-int", "cegqi-use-inf-real", "check-abducts", "check-interpols",
11985
"check-models", "check-proofs", "check-synth-sol", "check-unsat-cores",
11986
"collect-pivot-stats", "cond-var-split-agg-quant", "cond-var-split-quant",
11987
"condense-function-values", "conjecture-filter-active-terms",
11988
"conjecture-filter-canonical", "conjecture-filter-model", "conjecture-gen",
11989
"conjecture-gen-gt-enum", "conjecture-gen-max-depth",
11990
"conjecture-gen-per-round", "conjecture-gen-uee-intro", "conjecture-no-filter",
11991
"copyright", "cut-all-bounded", "dag-thresh", "debug", "debug-check-models",
11992
"decision", "decision-mode", "decision-random-weight", "decision-threshold",
11993
"decision-use-weight", "decision-weight-internal", "diagnostic-output-channel",
11994
"dio-decomps", "dio-repeat", "dio-solver", "dio-turns", "dt-binary-split",
11995
"dt-blast-splits", "dt-cyclic", "dt-force-assignment", "dt-infer-as-lemmas",
11996
"dt-nested-rec", "dt-polite-optimize", "dt-rewrite-error-sel", "dt-share-sel",
11997
"dt-stc-ind", "dt-var-exp-quant", "dump", "dump-instantiations",
11998
"dump-instantiations-debug", "dump-models", "dump-proofs", "dump-to",
11999
"dump-unsat-cores", "dump-unsat-cores-full", "e-matching", "early-exit",
12000
"early-ite-removal", "ee-mode", "elim-taut-quant", "err",
12001
"error-selection-rule", "expand-definitions", "expr-depth", "ext-rew-prep",
12002
"ext-rew-prep-agg", "ext-rewrite-quant", "fc-penalties", "filesystem-access",
12003
"finite-model-find", "flatten-ho-chains", "fmf-bound", "fmf-bound-int",
12004
"fmf-bound-lazy", "fmf-fmc-simple", "fmf-fresh-dc", "fmf-fun", "fmf-fun-rlv",
12005
"fmf-inst-engine", "fmf-type-completion-thresh", "force-logic",
12006
"force-no-limit-cpu-while-dump", "foreign-theory-rewrite", "fp-exp",
12007
"fp-lazy-wb", "fs-interleave", "fs-stratify", "fs-sum", "full-saturate-quant",
12008
"full-saturate-quant-limit", "full-saturate-quant-rd", "global-declarations",
12009
"global-negate", "help", "heuristic-pivots", "ho-elim", "ho-elim-store-ax",
12010
"ho-matching", "ho-matching-var-priority", "ho-merge-term-db", "iand-mode",
12011
"in", "increment-triggers", "incremental", "input-language", "inst-format",
12012
"inst-level-input-only", "inst-max-level", "inst-max-rounds", "inst-no-entail",
12013
"inst-when", "inst-when-phase", "inst-when-strict-interleave",
12014
"inst-when-tc-first", "int-wf-ind", "interactive", "interactive-mode",
12015
"interactive-prompt", "ite-dtt-split-quant", "ite-lift-quant", "ite-simp",
12016
"jh-rlv-order", "jh-skolem", "jh-skolem-rlv", "lang", "learned-rewrite",
12017
"lemmas-on-replay-failure", "literal-matching", "macros-quant",
12018
"macros-quant-mode", "maxCutsInContext", "mbqi", "mbqi-interleave",
12019
"mbqi-one-inst-per-round", "minimal-unsat-cores", "minisat-dump-dimacs",
12020
"minisat-elimination", "miniscope-quant", "miniscope-quant-fv", "miplib-trick",
12021
"miplib-trick-subs", "mmap", "model-cores", "model-format", "model-u-print",
12022
"model-uninterp-print", "model-witness-value", "multi-trigger-cache",
12023
"multi-trigger-linear", "multi-trigger-priority", "multi-trigger-when-single",
12024
"new-prop", "nl-cad", "nl-cad-initial", "nl-cad-lift", "nl-cad-proj", "nl-ext",
12025
"nl-ext-ent-conf", "nl-ext-factor", "nl-ext-inc-prec", "nl-ext-purify",
12026
"nl-ext-rbound", "nl-ext-rewrite", "nl-ext-split-zero", "nl-ext-tf-taylor-deg",
12027
"nl-ext-tf-tplanes", "nl-ext-tplanes", "nl-ext-tplanes-interleave", "nl-icp",
12028
"nl-rlv", "on-repeat-ite-simp", "out", "output", "output-lang",
12029
"output-language", "parse-only", "partial-triggers", "pb-rewrites",
12030
"pivot-threshold", "pool-inst", "pp-assert-max-sub-size", "pre-skolem-quant",
12031
"pre-skolem-quant-agg", "pre-skolem-quant-nested", "prenex-quant",
12032
"prenex-quant-user", "preprocess-only", "print-inst", "print-inst-full",
12033
"print-success", "produce-abducts", "produce-assertions", "produce-assignments",
12034
"produce-interpols", "produce-models", "produce-proofs",
12035
"produce-unsat-assumptions", "produce-unsat-cores", "proof-eager-checking",
12036
"proof-format-mode", "proof-granularity", "proof-pedantic",
12037
"proof-print-conclusion", "prop-row-length", "purify-triggers",
12038
"qcf-all-conflict", "qcf-eager-check-rd", "qcf-eager-test",
12039
"qcf-nested-conflict", "qcf-skip-rd", "qcf-tconstraint", "qcf-vo-exp",
12040
"quant-alpha-equiv", "quant-cf", "quant-cf-mode", "quant-cf-when",
12041
"quant-dsplit-mode", "quant-fun-wd", "quant-ind", "quant-rep-mode",
12042
"quant-split", "quiet", "random-freq", "random-frequency", "random-seed",
12043
"re-elim", "re-elim-agg", "re-inter-mode", "refine-conflicts",
12044
"register-quant-body-terms", "regular-output-channel", "relational-triggers",
12045
"relevance-filter", "relevant-triggers", "repeat-simp",
12046
"replay-early-close-depth", "replay-failure-penalty", "replay-lemma-reject-cut",
12047
"replay-num-err-penalty", "replay-reject-cut", "replay-soi-major-threshold",
12048
"replay-soi-major-threshold-pen", "replay-soi-minor-threshold",
12049
"replay-soi-minor-threshold-pen", "reproducible-resource-limit",
12050
"restart-int-base", "restart-int-inc", "restrict-pivots",
12051
"revert-arith-models-on-unsat", "rlimit", "rlimit-per", "rr-turns", "rweight",
12052
"se-solve-int", "seed", "segv-spin", "semantic-checks", "sep-check-neg",
12053
"sep-child-refine", "sep-deq-c", "sep-exp", "sep-min-refine",
12054
"sep-pre-skolem-emp", "sets-ext", "sets-infer-as-lemmas", "sets-proxy-lemmas",
12055
"show-config", "show-debug-tags", "show-trace-tags", "simp-ite-compress",
12056
"simp-ite-hunt-zombies", "simp-with-care", "simplex-check-period",
12057
"simplification", "simplification-mode", "soi-qe", "solve-bv-as-int",
12058
"solve-int-as-bv", "solve-real-as-int", "sort-inference",
12059
"standard-effort-variable-order-pivots", "static-learning", "stats",
12060
"stats-all", "stats-every-query", "stats-expert", "strict-parsing",
12061
"strings-check-entail-len", "strings-eager", "strings-eager-eval",
12062
"strings-eager-len", "strings-exp", "strings-ff", "strings-fmf",
12063
"strings-guess-model", "strings-infer-as-lemmas", "strings-infer-sym",
12064
"strings-lazy-pp", "strings-len-norm", "strings-lprop-csp",
12065
"strings-min-prefix-explain", "strings-process-loop-mode",
12066
"strings-rexplain-lemmas", "strings-unified-vspt", "sygus", "sygus-abort-size",
12067
"sygus-active-gen", "sygus-active-gen-cfactor", "sygus-add-const-grammar",
12068
"sygus-arg-relevant", "sygus-auto-unfold", "sygus-bool-ite-return-const",
12069
"sygus-core-connective", "sygus-crepair-abort", "sygus-eval-opt",
12070
"sygus-eval-unfold", "sygus-eval-unfold-bool", "sygus-expr-miner-check-timeout",
12071
"sygus-ext-rew", "sygus-fair", "sygus-fair-max", "sygus-filter-sol",
12072
"sygus-filter-sol-rev", "sygus-grammar-cons", "sygus-grammar-norm",
12073
"sygus-inference", "sygus-inst", "sygus-inst-mode", "sygus-inst-scope",
12074
"sygus-inst-term-sel", "sygus-inv-templ", "sygus-inv-templ-when-sg",
12075
"sygus-min-grammar", "sygus-out", "sygus-pbe", "sygus-pbe-multi-fair",
12076
"sygus-pbe-multi-fair-diff", "sygus-print-callbacks", "sygus-qe-preproc",
12077
"sygus-query-gen", "sygus-query-gen-check", "sygus-query-gen-dump-files",
12078
"sygus-query-gen-thresh", "sygus-rec-fun", "sygus-rec-fun-eval-limit",
12079
"sygus-repair-const", "sygus-repair-const-timeout", "sygus-rr",
12080
"sygus-rr-synth", "sygus-rr-synth-accel", "sygus-rr-synth-check",
12081
"sygus-rr-synth-filter-cong", "sygus-rr-synth-filter-match",
12082
"sygus-rr-synth-filter-nl", "sygus-rr-synth-filter-order",
12083
"sygus-rr-synth-input", "sygus-rr-synth-input-nvars",
12084
"sygus-rr-synth-input-use-bool", "sygus-rr-synth-rec", "sygus-rr-verify",
12085
"sygus-rr-verify-abort", "sygus-sample-fp-uniform", "sygus-sample-grammar",
12086
"sygus-samples", "sygus-si", "sygus-si-abort", "sygus-si-partial",
12087
"sygus-si-rcons", "sygus-si-rcons-limit", "sygus-si-reconstruct-const",
12088
"sygus-stream", "sygus-sym-break", "sygus-sym-break-agg",
12089
"sygus-sym-break-dynamic", "sygus-sym-break-lazy", "sygus-sym-break-pbe",
12090
"sygus-sym-break-rlv", "sygus-templ-embed-grammar",
12091
"sygus-unif-cond-independent-no-repeat-sol", "sygus-unif-pi",
12092
"sygus-unif-shuffle-cond", "sygus-verify-inst-max-rounds", "symmetry-breaker",
12093
"tc-mode", "term-db-cd", "term-db-mode", "theoryof-mode", "tlimit",
12094
"tlimit-per", "trace", "trigger-active-sel", "trigger-sel", "type-checking",
12095
"uf-ho", "uf-ho-ext", "uf-ss", "uf-ss-abort-card", "uf-ss-fair",
12096
"uf-ss-fair-monotone", "uf-ss-totality-limited", "uf-ss-totality-sym-break",
12097
"uf-symmetry-breaker", "unate-lemmas", "unconstrained-simp", "unsat-cores-mode",
12098
"use-approx", "use-fcsimplex", "use-soi", "user-pat", "var-elim-quant",
12099
"var-ineq-elim-quant", "verbose", "verbosity", "version"
12100
2
  };
12101
}
12102
12103
29349
}  // namespace cvc5::options