GCC Code Coverage Report
Directory: . Exec Total Coverage
File: build-coverage/src/options/options_public.cpp Lines: 2737 8039 34.0 %
Date: 2021-08-06 Branches: 3134 19473 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
9774
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
9774
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
"  --strict-triggers      only instantiate quantifiers with user patterns based\n"
667
"                         on triggers [*]\n"
668
"  --sygus                use sygus solver (default is true for sygus inputs) [*]\n"
669
"  --sygus-active-gen-cfactor=N\n"
670
"                         the branching factor for the number of interpreted\n"
671
"                         constants to consider for each size when using\n"
672
"                         --sygus-active-gen=enum\n"
673
"  --sygus-active-gen=MODE\n"
674
"                         mode for actively-generated sygus enumerators\n"
675
"  --sygus-add-const-grammar\n"
676
"                         statically add constants appearing in conjecture to\n"
677
"                         grammars [*]\n"
678
"  --sygus-arg-relevant   static inference techniques for computing whether\n"
679
"                         arguments of functions-to-synthesize are relevant [*]\n"
680
"  --sygus-auto-unfold    enable approach which automatically unfolds transition\n"
681
"                         systems for directly solving invariant synthesis\n"
682
"                         problems [*]\n"
683
"  --sygus-bool-ite-return-const\n"
684
"                         Only use Boolean constants for return values in\n"
685
"                         unification-based function synthesis [*]\n"
686
"  --sygus-core-connective\n"
687
"                         use unsat core analysis to construct Boolean connective\n"
688
"                         to sygus conjectures [*]\n"
689
"  --sygus-crepair-abort  abort if constant repair techniques are not applicable\n"
690
"                         [*]\n"
691
"  --sygus-eval-opt       use optimized approach for evaluation in sygus [*]\n"
692
"  --sygus-eval-unfold    do unfolding of sygus evaluation functions [*]\n"
693
"  --sygus-eval-unfold-bool\n"
694
"                         do unfolding of Boolean evaluation functions that\n"
695
"                         appear in refinement lemmas [*]\n"
696
"  --sygus-expr-miner-check-timeout=N\n"
697
"                         timeout (in milliseconds) for satisfiability checks in\n"
698
"                         expression miners\n"
699
"  --sygus-ext-rew        use extended rewriter for sygus [*]\n"
700
"  --sygus-filter-sol-rev compute backwards filtering to compute whether previous\n"
701
"                         solutions are filtered based on later ones (EXPERTS\n"
702
"                         only) [*]\n"
703
"  --sygus-filter-sol=MODE\n"
704
"                         mode for filtering sygus solutions\n"
705
"  --sygus-grammar-cons=MODE\n"
706
"                         mode for SyGuS grammar construction\n"
707
"  --sygus-grammar-norm   statically normalize sygus grammars based on flattening\n"
708
"                         (linearization) [*]\n"
709
"  --sygus-inference      attempt to preprocess arbitrary inputs to sygus\n"
710
"                         conjectures [*]\n"
711
"  --sygus-inst           Enable SyGuS instantiation quantifiers module [*]\n"
712
"  --sygus-inst-mode=MODE select instantiation lemma mode\n"
713
"  --sygus-inst-scope=MODE\n"
714
"                         select scope of ground terms\n"
715
"  --sygus-inst-term-sel=MODE\n"
716
"                         granularity for ground terms\n"
717
"  --sygus-inv-templ-when-sg\n"
718
"                         use invariant templates (with solution reconstruction)\n"
719
"                         for syntax guided problems [*]\n"
720
"  --sygus-inv-templ=MODE template mode for sygus invariant synthesis (weaken\n"
721
"                         pre-condition, strengthen post-condition, or none)\n"
722
"  --sygus-min-grammar    statically minimize sygus grammars [*]\n"
723
"  --sygus-pbe            enable approach which unifies conditional solutions,\n"
724
"                         specialized for programming-by-examples (pbe)\n"
725
"                         conjectures [*]\n"
726
"  --sygus-pbe-multi-fair when using multiple enumerators, ensure that we only\n"
727
"                         register value of minimial term size [*]\n"
728
"  --sygus-pbe-multi-fair-diff=N\n"
729
"                         when using multiple enumerators, ensure that we only\n"
730
"                         register values of minimial term size plus this value\n"
731
"                         (default 0)\n"
732
"  --sygus-qe-preproc     use quantifier elimination as a preprocessing step for\n"
733
"                         sygus [*]\n"
734
"  --sygus-query-gen      use sygus to enumerate interesting satisfiability\n"
735
"                         queries [*]\n"
736
"  --sygus-query-gen-check\n"
737
"                         use interesting satisfiability queries to check\n"
738
"                         soundness of cvc5 [*]\n"
739
"  --sygus-query-gen-dump-files=MODE\n"
740
"                         mode for dumping external files corresponding to\n"
741
"                         interesting satisfiability queries with sygus-query-gen\n"
742
"  --sygus-query-gen-thresh=N\n"
743
"                         number of points that we allow to be equal for\n"
744
"                         enumerating satisfiable queries with sygus-query-gen\n"
745
"  --sygus-rec-fun        enable efficient support for recursive functions in\n"
746
"                         sygus grammars [*]\n"
747
"  --sygus-rec-fun-eval-limit=N\n"
748
"                         use a hard limit for how many times in a given\n"
749
"                         evaluator call a recursive function can be evaluated\n"
750
"                         (so infinite loops can be avoided)\n"
751
"  --sygus-repair-const   use approach to repair constants in sygus candidate\n"
752
"                         solutions [*]\n"
753
"  --sygus-repair-const-timeout=N\n"
754
"                         timeout (in milliseconds) for the satisfiability check\n"
755
"                         to repair constants in sygus candidate solutions\n"
756
"  --sygus-rr             use sygus to enumerate and verify correctness of\n"
757
"                         rewrite rules [*]\n"
758
"  --sygus-rr-synth       use sygus to enumerate candidate rewrite rules [*]\n"
759
"  --sygus-rr-synth-accel add dynamic symmetry breaking clauses based on\n"
760
"                         candidate rewrites [*]\n"
761
"  --sygus-rr-synth-check use satisfiability check to verify correctness of\n"
762
"                         candidate rewrites [*]\n"
763
"  --sygus-rr-synth-filter-cong\n"
764
"                         filter candidate rewrites based on congruence [*]\n"
765
"  --sygus-rr-synth-filter-match\n"
766
"                         filter candidate rewrites based on matching [*]\n"
767
"  --sygus-rr-synth-filter-nl\n"
768
"                         filter non-linear candidate rewrites [*]\n"
769
"  --sygus-rr-synth-filter-order\n"
770
"                         filter candidate rewrites based on variable ordering\n"
771
"                         [*]\n"
772
"  --sygus-rr-synth-input synthesize rewrite rules based on the input formula [*]\n"
773
"  --sygus-rr-synth-input-nvars=N\n"
774
"                         the maximum number of variables per type that appear in\n"
775
"                         rewrites from sygus-rr-synth-input\n"
776
"  --sygus-rr-synth-input-use-bool\n"
777
"                         synthesize Boolean rewrite rules based on the input\n"
778
"                         formula [*]\n"
779
"  --sygus-rr-synth-rec   synthesize rewrite rules over all sygus grammar types\n"
780
"                         recursively [*]\n"
781
"  --sygus-rr-verify      use sygus to verify the correctness of rewrite rules\n"
782
"                         via sampling [*]\n"
783
"  --sygus-rr-verify-abort\n"
784
"                         abort when sygus-rr-verify finds an instance of\n"
785
"                         unsoundness [*]\n"
786
"  --sygus-sample-fp-uniform\n"
787
"                         sample floating-point values uniformly instead of in a\n"
788
"                         biased fashion [*]\n"
789
"  --sygus-sample-grammar when applicable, use grammar for choosing sample points\n"
790
"                         [*]\n"
791
"  --sygus-samples=N      number of points to consider when doing sygus rewriter\n"
792
"                         sample testing\n"
793
"  --sygus-si-abort       abort if synthesis conjecture is not single invocation\n"
794
"                         [*]\n"
795
"  --sygus-si-partial     combined techniques for synthesis conjectures that are\n"
796
"                         partially single invocation [*]\n"
797
"  --sygus-si-rcons-limit=N\n"
798
"                         number of rounds of enumeration to use during solution\n"
799
"                         reconstruction (negative means unlimited)\n"
800
"  --sygus-si-rcons=MODE  policy for reconstructing solutions for single\n"
801
"                         invocation conjectures\n"
802
"  --sygus-si-reconstruct-const\n"
803
"                         include constants when reconstruct solutions for single\n"
804
"                         invocation conjectures in original grammar [*]\n"
805
"  --sygus-si=MODE        mode for processing single invocation synthesis\n"
806
"                         conjectures\n"
807
"  --sygus-stream         enumerate a stream of solutions instead of terminating\n"
808
"                         after the first one [*]\n"
809
"  --sygus-templ-embed-grammar\n"
810
"                         embed sygus templates into grammars [*]\n"
811
"  --sygus-unif-cond-independent-no-repeat-sol\n"
812
"                         Do not try repeated solutions when using independent\n"
813
"                         synthesis of conditions in unification-based function\n"
814
"                         synthesis [*]\n"
815
"  --sygus-unif-pi=MODE   mode for synthesis via piecewise-indepedent unification\n"
816
"  --sygus-unif-shuffle-cond\n"
817
"                         Shuffle condition pool when building solutions (may\n"
818
"                         change solutions sizes) [*]\n"
819
"  --sygus-verify-inst-max-rounds=N\n"
820
"                         maximum number of instantiation rounds for sygus\n"
821
"                         verification calls (-1 == no limit, default is 3)\n"
822
"  --term-db-cd           register terms in term database based on the SAT\n"
823
"                         context [*]\n"
824
"  --term-db-mode=MODE    which ground terms to consider for instantiation\n"
825
"  --trigger-active-sel=MODE\n"
826
"                         selection mode to activate triggers\n"
827
"  --trigger-sel=MODE     selection mode for triggers\n"
828
"  --user-pat=MODE        policy for handling user-provided patterns for\n"
829
"                         quantifier instantiation\n"
830
"  --var-elim-quant       enable simple variable elimination for quantified\n"
831
"                         formulas [*]\n"
832
"  --var-ineq-elim-quant  enable variable elimination based on infinite\n"
833
"                         projection of unbound arithmetic variables [*]\n"
834
"\nFrom the Separation Logic Theory module:\n"
835
"  --sep-check-neg        check negated spatial assertions [*]\n"
836
"  --sep-child-refine     child-specific refinements of negated star, positive\n"
837
"                         wand [*]\n"
838
"  --sep-deq-c            assume cardinality elements are distinct [*]\n"
839
"  --sep-exp              experimental flag for sep [*]\n"
840
"  --sep-min-refine       only add refinement lemmas for minimal (innermost)\n"
841
"                         assertions [*]\n"
842
"  --sep-pre-skolem-emp   eliminate emp constraint at preprocess time [*]\n"
843
"\nFrom the Sets Theory module:\n"
844
"  --sets-ext             enable extended symbols such as complement and universe\n"
845
"                         in theory of sets [*]\n"
846
"  --sets-infer-as-lemmas send inferences as lemmas [*]\n"
847
"  --sets-proxy-lemmas    introduce proxy variables eagerly to shorten lemmas [*]\n"
848
"\nFrom the SMT Layer module:\n"
849
"  --abstract-values      in models, output arrays (and in future, maybe others)\n"
850
"                         using abstract values, as required by the SMT-LIB\n"
851
"                         standard [*]\n"
852
"  --ackermann            eliminate functions by ackermannization [*]\n"
853
"  --block-models=MODE    mode for producing several models\n"
854
"  --check-abducts        checks whether produced solutions to get-abduct are\n"
855
"                         correct [*]\n"
856
"  --check-interpols      checks whether produced solutions to get-interpol are\n"
857
"                         correct [*]\n"
858
"  --check-models         after SAT/INVALID/UNKNOWN, check that the generated\n"
859
"                         model satisfies user assertions [*]\n"
860
"  --check-proofs         after UNSAT/VALID, check the generated proof (with\n"
861
"                         proof) [*]\n"
862
"  --check-synth-sol      checks whether produced solutions to\n"
863
"                         functions-to-synthesize satisfy the conjecture [*]\n"
864
"  --check-unsat-cores    after UNSAT/VALID, produce and check an unsat core\n"
865
"                         (expensive) [*]\n"
866
"  --debug-check-models   after SAT/INVALID/UNKNOWN, check that the generated\n"
867
"                         model satisfies user and internal assertions [*]\n"
868
"  --early-ite-removal    remove ITEs early in preprocessing [*]\n"
869
"  --expand-definitions   always expand symbol definitions in output [*]\n"
870
"  --ext-rew-prep         use extended rewriter as a preprocessing pass [*]\n"
871
"  --ext-rew-prep-agg     use aggressive extended rewriter as a preprocessing\n"
872
"                         pass [*]\n"
873
"  --foreign-theory-rewrite\n"
874
"                         Cross-theory rewrites [*]\n"
875
"  --ite-simp             turn on ite simplification (Kim (and Somenzi) et al.,\n"
876
"                         SAT 2009) [*]\n"
877
"  --learned-rewrite      rewrite the input based on learned literals [*]\n"
878
"  --minimal-unsat-cores  if an unsat core is produced, it is reduced to a\n"
879
"                         minimal unsat core [*]\n"
880
"  --model-cores=MODE     mode for producing model cores\n"
881
"  --model-u-print=MODE | --model-uninterp-print=MODE\n"
882
"                         determines how to print uninterpreted elements in\n"
883
"                         models\n"
884
"  --model-witness-value  in models, use a witness constant for choice functions\n"
885
"                         [*]\n"
886
"  --on-repeat-ite-simp   do the ite simplification pass again if repeating\n"
887
"                         simplification [*]\n"
888
"  --produce-assignments  support the get-assignment command [*]\n"
889
"  --produce-proofs       produce proofs, support check-proofs and get-proof [*]\n"
890
"  --produce-unsat-assumptions\n"
891
"                         turn on unsat assumptions generation [*]\n"
892
"  --produce-unsat-cores  turn on unsat core generation. Unless otherwise\n"
893
"                         specified, cores will be produced using SAT soving\n"
894
"                         under assumptions and preprocessing proofs. [*]\n"
895
"  --repeat-simp          make multiple passes with nonclausal simplifier [*]\n"
896
"  --simp-ite-compress    enables compressing ites after ite simplification [*]\n"
897
"  --simp-ite-hunt-zombies=N\n"
898
"                         post ite compression enables zombie removal while the\n"
899
"                         number of nodes is above this threshold\n"
900
"  --simp-with-care       enables simplifyWithCare in ite simplificiation [*]\n"
901
"  --simplification=MODE | --simplification-mode=MODE\n"
902
"                         choose simplification mode, see --simplification=help\n"
903
"  --sort-inference       calculate sort inference of input problem, convert the\n"
904
"                         input based on monotonic sorts [*]\n"
905
"  --static-learning      use static learning (on by default) [*]\n"
906
"  --sygus-out=MODE       output mode for sygus\n"
907
"  --sygus-print-callbacks\n"
908
"                         use sygus print callbacks to print sygus terms in the\n"
909
"                         user-provided form (disable for debugging) [*]\n"
910
"  --unconstrained-simp   turn on unconstrained simplification (see\n"
911
"                         Bruttomesso/Brummayer PhD thesis). Fully supported only\n"
912
"                         in (subsets of) the logic QF_ABV. [*]\n"
913
"  --unsat-cores-mode=MODE\n"
914
"                         choose unsat core mode, see --unsat-cores-mode=help\n"
915
"\nFrom the Strings Theory module:\n"
916
"  --re-elim              elimination techniques for regular expressions [*]\n"
917
"  --re-elim-agg          aggressive elimination techniques for regular\n"
918
"                         expressions [*]\n"
919
"  --re-inter-mode=MODE   determines which regular expressions intersections to\n"
920
"                         compute (EXPERTS only)\n"
921
"  --strings-check-entail-len\n"
922
"                         check entailment between length terms to reduce\n"
923
"                         splitting [*]\n"
924
"  --strings-eager        strings eager check [*]\n"
925
"  --strings-eager-eval   perform eager context-dependent evaluation for\n"
926
"                         applications of string kinds [*]\n"
927
"  --strings-eager-len    strings eager length lemmas [*]\n"
928
"  --strings-exp          experimental features in the theory of strings [*]\n"
929
"  --strings-ff           do flat form inferences [*]\n"
930
"  --strings-fmf          the finite model finding used by the theory of strings\n"
931
"                         [*]\n"
932
"  --strings-guess-model  use model guessing to avoid string extended function\n"
933
"                         reductions [*]\n"
934
"  --strings-infer-as-lemmas\n"
935
"                         always send lemmas out instead of making internal\n"
936
"                         inferences [*]\n"
937
"  --strings-infer-sym    strings split on empty string [*]\n"
938
"  --strings-lazy-pp      perform string preprocessing lazily [*]\n"
939
"  --strings-len-norm     strings length normalization lemma [*]\n"
940
"  --strings-lprop-csp    do length propagation based on constant splits [*]\n"
941
"  --strings-min-prefix-explain\n"
942
"                         minimize explanations for prefix of normal forms in\n"
943
"                         strings [*]\n"
944
"  --strings-process-loop-mode=MODE\n"
945
"                         determines how to process looping string equations\n"
946
"                         (EXPERTS only)\n"
947
"  --strings-rexplain-lemmas\n"
948
"                         regression explanations for string lemmas [*]\n"
949
"  --strings-unified-vspt use a single skolem for the variable splitting rule [*]\n"
950
"\nFrom the Theory Layer module:\n"
951
"  --assign-function-values\n"
952
"                         assign values for uninterpreted functions in models [*]\n"
953
"  --condense-function-values\n"
954
"                         condense values for functions in models rather than\n"
955
"                         explicitly representing them [*]\n"
956
"  --ee-mode=MODE         mode for managing equalities across theory solvers\n"
957
"                         (EXPERTS only)\n"
958
"  --relevance-filter     enable analysis of relevance of asserted literals with\n"
959
"                         respect to the input formula [*]\n"
960
"  --tc-mode=MODE         mode for theory combination (EXPERTS only)\n"
961
"  --theoryof-mode=MODE   mode for Theory::theoryof() (EXPERTS only)\n"
962
"\nFrom the Uninterpreted Functions Theory module:\n"
963
"  --symmetry-breaker | --uf-symmetry-breaker\n"
964
"                         use UF symmetry breaker (Deharbe et al., CADE 2011) [*]\n"
965
"  --uf-ho                enable support for higher-order reasoning [*]\n"
966
"  --uf-ho-ext            apply extensionality on function symbols [*]\n"
967
"  --uf-ss-abort-card=N   tells the uf with cardinality to only consider models\n"
968
"                         that interpret uninterpreted sorts of cardinality at\n"
969
"                         most N (-1 == no limit, default)\n"
970
"  --uf-ss-fair           use fair strategy for finite model finding multiple\n"
971
"                         sorts [*]\n"
972
"  --uf-ss-fair-monotone  group monotone sorts when enforcing fairness for finite\n"
973
"                         model finding [*]\n"
974
"  --uf-ss-totality-limited=N\n"
975
"                         apply totality axioms, but only up to cardinality N (-1\n"
976
"                         == do not apply totality axioms, default)\n"
977
"  --uf-ss-totality-sym-break\n"
978
"                         apply symmetry breaking for totality axioms [*]\n"
979
"  --uf-ss=MODE           mode of operation for uf with cardinality solver.\n";
980
981
9774
static const std::string optionsFootnote = "\n\
982
[*] Each of these options has a --no-OPTIONNAME variant, which reverses the\n\
983
    sense of the option.\n\
984
";
985
986
9774
static const std::string languageDescription =
987
    "\
988
Languages currently supported as arguments to the -L / --lang option:\n\
989
  auto                           attempt to automatically determine language\n\
990
  cvc | presentation | pl        CVC presentation language\n\
991
  smt | smtlib | smt2 |\n\
992
  smt2.6 | smtlib2.6             SMT-LIB format 2.6 with support for the strings standard\n\
993
  tptp                           TPTP format (cnf, fof and tff)\n\
994
  sygus | sygus2                 SyGuS version 2.0\n\
995
\n\
996
Languages currently supported as arguments to the --output-lang option:\n\
997
  auto                           match output language to input language\n\
998
  cvc | presentation | pl        CVC presentation language\n\
999
  smt | smtlib | smt2 |\n\
1000
  smt2.6 | smtlib2.6             SMT-LIB format 2.6 with support for the strings standard\n\
1001
  tptp                           TPTP format\n\
1002
  ast                            internal format (simple syntax trees)\n\
1003
";
1004
// clang-format on
1005
1006
const std::string& getDescription()
1007
{
1008
  return optionsDescription;
1009
}
1010
1011
void printUsage(const std::string& msg, std::ostream& os) {
1012
  os << msg << optionsDescription << std::endl
1013
      << optionsFootnote << std::endl << std::flush;
1014
}
1015
1016
void printShortUsage(const std::string& msg, std::ostream& os) {
1017
  os << msg << mostCommonOptionsDescription << std::endl
1018
      << optionsFootnote << std::endl
1019
      << "For full usage, please use --help."
1020
      << std::endl << std::endl << std::flush;
1021
}
1022
1023
void printLanguageHelp(std::ostream& os) {
1024
  os << languageDescription << std::flush;
1025
}
1026
1027
/** Set a given Options* as "current" just for a particular scope. */
1028
class OptionsGuard {
1029
  Options** d_field;
1030
  Options* d_old;
1031
public:
1032
8796
  OptionsGuard(Options** field, Options* opts) :
1033
    d_field(field),
1034
8796
    d_old(*field) {
1035
8796
    *field = opts;
1036
8796
  }
1037
12388
  ~OptionsGuard() {
1038
6194
    *d_field = d_old;
1039
6194
  }
1040
};/* class OptionsGuard */
1041
1042
/**
1043
 * This is a table of long options.  By policy, each short option
1044
 * should have an equivalent long option (but the reverse isn't the
1045
 * case), so this table should thus contain all command-line options.
1046
 *
1047
 * Each option in this array has four elements:
1048
 *
1049
 * 1. the long option string
1050
 * 2. argument behavior for the option:
1051
 *    no_argument - no argument permitted
1052
 *    required_argument - an argument is expected
1053
 *    optional_argument - an argument is permitted but not required
1054
 * 3. this is a pointer to an int which is set to the 4th entry of the
1055
 *    array if the option is present; or NULL, in which case
1056
 *    getopt_long() returns the 4th entry
1057
 * 4. the return value for getopt_long() when this long option (or the
1058
 *    value to set the 3rd entry to; see #3)
1059
 *
1060
 * If you add something here, you should add it in src/main/usage.h
1061
 * also, to document it.
1062
 *
1063
 * If you add something that has a short option equivalent, you should
1064
 * add it to the getopt_long() call in parse().
1065
 */
1066
// clang-format off
1067
static struct option cmdlineOptions[] = {
1068
  { "approx-branch-depth", required_argument, nullptr, 256 },
1069
  { "arith-brab", no_argument, nullptr, 257 },
1070
  { "no-arith-brab", no_argument, nullptr, 258 },
1071
  { "arith-cong-man", no_argument, nullptr, 259 },
1072
  { "no-arith-cong-man", no_argument, nullptr, 260 },
1073
  { "arith-eq-solver", no_argument, nullptr, 261 },
1074
  { "no-arith-eq-solver", no_argument, nullptr, 262 },
1075
  { "arith-no-partial-fun", no_argument, nullptr, 263 },
1076
  { "no-arith-no-partial-fun", no_argument, nullptr, 264 },
1077
  { "arith-prop-clauses", required_argument, nullptr, 265 },
1078
  { "arith-prop", required_argument, nullptr, 266 },
1079
  { "arith-rewrite-equalities", no_argument, nullptr, 267 },
1080
  { "no-arith-rewrite-equalities", no_argument, nullptr, 268 },
1081
  { "collect-pivot-stats", no_argument, nullptr, 269 },
1082
  { "no-collect-pivot-stats", no_argument, nullptr, 270 },
1083
  { "cut-all-bounded", no_argument, nullptr, 271 },
1084
  { "no-cut-all-bounded", no_argument, nullptr, 272 },
1085
  { "dio-decomps", no_argument, nullptr, 273 },
1086
  { "no-dio-decomps", no_argument, nullptr, 274 },
1087
  { "dio-repeat", no_argument, nullptr, 275 },
1088
  { "no-dio-repeat", no_argument, nullptr, 276 },
1089
  { "dio-solver", no_argument, nullptr, 277 },
1090
  { "no-dio-solver", no_argument, nullptr, 278 },
1091
  { "dio-turns", required_argument, nullptr, 279 },
1092
  { "error-selection-rule", required_argument, nullptr, 280 },
1093
  { "fc-penalties", no_argument, nullptr, 281 },
1094
  { "no-fc-penalties", no_argument, nullptr, 282 },
1095
  { "heuristic-pivots", required_argument, nullptr, 283 },
1096
  { "lemmas-on-replay-failure", no_argument, nullptr, 284 },
1097
  { "no-lemmas-on-replay-failure", no_argument, nullptr, 285 },
1098
  { "maxCutsInContext", required_argument, nullptr, 286 },
1099
  { "miplib-trick", no_argument, nullptr, 287 },
1100
  { "no-miplib-trick", no_argument, nullptr, 288 },
1101
  { "miplib-trick-subs", required_argument, nullptr, 289 },
1102
  { "new-prop", no_argument, nullptr, 290 },
1103
  { "no-new-prop", no_argument, nullptr, 291 },
1104
  { "nl-cad", no_argument, nullptr, 292 },
1105
  { "no-nl-cad", no_argument, nullptr, 293 },
1106
  { "nl-cad-initial", no_argument, nullptr, 294 },
1107
  { "no-nl-cad-initial", no_argument, nullptr, 295 },
1108
  { "nl-cad-lift", required_argument, nullptr, 296 },
1109
  { "nl-cad-proj", required_argument, nullptr, 297 },
1110
  { "nl-ext-ent-conf", no_argument, nullptr, 298 },
1111
  { "no-nl-ext-ent-conf", no_argument, nullptr, 299 },
1112
  { "nl-ext-factor", no_argument, nullptr, 300 },
1113
  { "no-nl-ext-factor", no_argument, nullptr, 301 },
1114
  { "nl-ext-inc-prec", no_argument, nullptr, 302 },
1115
  { "no-nl-ext-inc-prec", no_argument, nullptr, 303 },
1116
  { "nl-ext-purify", no_argument, nullptr, 304 },
1117
  { "no-nl-ext-purify", no_argument, nullptr, 305 },
1118
  { "nl-ext-rbound", no_argument, nullptr, 306 },
1119
  { "no-nl-ext-rbound", no_argument, nullptr, 307 },
1120
  { "nl-ext-rewrite", no_argument, nullptr, 308 },
1121
  { "no-nl-ext-rewrite", no_argument, nullptr, 309 },
1122
  { "nl-ext-split-zero", no_argument, nullptr, 310 },
1123
  { "no-nl-ext-split-zero", no_argument, nullptr, 311 },
1124
  { "nl-ext-tf-taylor-deg", required_argument, nullptr, 312 },
1125
  { "nl-ext-tf-tplanes", no_argument, nullptr, 313 },
1126
  { "no-nl-ext-tf-tplanes", no_argument, nullptr, 314 },
1127
  { "nl-ext-tplanes", no_argument, nullptr, 315 },
1128
  { "no-nl-ext-tplanes", no_argument, nullptr, 316 },
1129
  { "nl-ext-tplanes-interleave", no_argument, nullptr, 317 },
1130
  { "no-nl-ext-tplanes-interleave", no_argument, nullptr, 318 },
1131
  { "nl-ext", required_argument, nullptr, 319 },
1132
  { "nl-icp", no_argument, nullptr, 320 },
1133
  { "no-nl-icp", no_argument, nullptr, 321 },
1134
  { "nl-rlv", required_argument, nullptr, 322 },
1135
  { "pb-rewrites", no_argument, nullptr, 323 },
1136
  { "no-pb-rewrites", no_argument, nullptr, 324 },
1137
  { "pivot-threshold", required_argument, nullptr, 325 },
1138
  { "pp-assert-max-sub-size", required_argument, nullptr, 326 },
1139
  { "prop-row-length", required_argument, nullptr, 327 },
1140
  { "replay-early-close-depth", required_argument, nullptr, 328 },
1141
  { "replay-failure-penalty", required_argument, nullptr, 329 },
1142
  { "replay-lemma-reject-cut", required_argument, nullptr, 330 },
1143
  { "replay-num-err-penalty", required_argument, nullptr, 331 },
1144
  { "replay-reject-cut", required_argument, nullptr, 332 },
1145
  { "replay-soi-major-threshold-pen", required_argument, nullptr, 333 },
1146
  { "replay-soi-major-threshold", required_argument, nullptr, 334 },
1147
  { "replay-soi-minor-threshold-pen", required_argument, nullptr, 335 },
1148
  { "replay-soi-minor-threshold", required_argument, nullptr, 336 },
1149
  { "restrict-pivots", no_argument, nullptr, 337 },
1150
  { "no-restrict-pivots", no_argument, nullptr, 338 },
1151
  { "revert-arith-models-on-unsat", no_argument, nullptr, 339 },
1152
  { "no-revert-arith-models-on-unsat", no_argument, nullptr, 340 },
1153
  { "rr-turns", required_argument, nullptr, 341 },
1154
  { "se-solve-int", no_argument, nullptr, 342 },
1155
  { "no-se-solve-int", no_argument, nullptr, 343 },
1156
  { "simplex-check-period", required_argument, nullptr, 344 },
1157
  { "soi-qe", no_argument, nullptr, 345 },
1158
  { "no-soi-qe", no_argument, nullptr, 346 },
1159
  { "standard-effort-variable-order-pivots", required_argument, nullptr, 347 },
1160
  { "unate-lemmas", required_argument, nullptr, 348 },
1161
  { "use-approx", no_argument, nullptr, 349 },
1162
  { "no-use-approx", no_argument, nullptr, 350 },
1163
  { "use-fcsimplex", no_argument, nullptr, 351 },
1164
  { "no-use-fcsimplex", no_argument, nullptr, 352 },
1165
  { "use-soi", no_argument, nullptr, 353 },
1166
  { "no-use-soi", no_argument, nullptr, 354 },
1167
  { "arrays-config", required_argument, nullptr, 355 },
1168
  { "arrays-eager-index", no_argument, nullptr, 356 },
1169
  { "no-arrays-eager-index", no_argument, nullptr, 357 },
1170
  { "arrays-eager-lemmas", no_argument, nullptr, 358 },
1171
  { "no-arrays-eager-lemmas", no_argument, nullptr, 359 },
1172
  { "arrays-exp", no_argument, nullptr, 360 },
1173
  { "no-arrays-exp", no_argument, nullptr, 361 },
1174
  { "arrays-model-based", no_argument, nullptr, 362 },
1175
  { "no-arrays-model-based", no_argument, nullptr, 363 },
1176
  { "arrays-optimize-linear", no_argument, nullptr, 364 },
1177
  { "no-arrays-optimize-linear", no_argument, nullptr, 365 },
1178
  { "arrays-prop", required_argument, nullptr, 366 },
1179
  { "arrays-reduce-sharing", no_argument, nullptr, 367 },
1180
  { "no-arrays-reduce-sharing", no_argument, nullptr, 368 },
1181
  { "arrays-weak-equiv", no_argument, nullptr, 369 },
1182
  { "no-arrays-weak-equiv", no_argument, nullptr, 370 },
1183
  { "debug", required_argument, nullptr, 371 },
1184
  { "err", required_argument, nullptr, 372 },
1185
  { "diagnostic-output-channel", required_argument, nullptr, 373 },
1186
  { "in", required_argument, nullptr, 374 },
1187
  { "incremental", no_argument, nullptr, 375 },
1188
  { "no-incremental", no_argument, nullptr, 376 },
1189
  { "lang", required_argument, nullptr, 377 },
1190
  { "input-language", required_argument, nullptr, 378 },
1191
  { "out", required_argument, nullptr, 379 },
1192
  { "regular-output-channel", required_argument, nullptr, 380 },
1193
  { "output-lang", required_argument, nullptr, 381 },
1194
  { "output-language", required_argument, nullptr, 382 },
1195
  { "output", required_argument, nullptr, 383 },
1196
  { "parse-only", no_argument, nullptr, 384 },
1197
  { "no-parse-only", no_argument, nullptr, 385 },
1198
  { "preprocess-only", no_argument, nullptr, 386 },
1199
  { "no-preprocess-only", no_argument, nullptr, 387 },
1200
  { "print-success", no_argument, nullptr, 388 },
1201
  { "no-print-success", no_argument, nullptr, 389 },
1202
  { "quiet", no_argument, nullptr, 390 },
1203
  { "rlimit-per", required_argument, nullptr, 391 },
1204
  { "reproducible-resource-limit", required_argument, nullptr, 392 },
1205
  { "rlimit", required_argument, nullptr, 393 },
1206
  { "rweight", required_argument, nullptr, 394 },
1207
  { "stats", no_argument, nullptr, 395 },
1208
  { "no-stats", no_argument, nullptr, 396 },
1209
  { "stats-all", no_argument, nullptr, 397 },
1210
  { "no-stats-all", no_argument, nullptr, 398 },
1211
  { "stats-every-query", no_argument, nullptr, 399 },
1212
  { "no-stats-every-query", no_argument, nullptr, 400 },
1213
  { "stats-expert", no_argument, nullptr, 401 },
1214
  { "no-stats-expert", no_argument, nullptr, 402 },
1215
  { "tlimit-per", required_argument, nullptr, 403 },
1216
  { "tlimit", required_argument, nullptr, 404 },
1217
  { "trace", required_argument, nullptr, 405 },
1218
  { "verbose", no_argument, nullptr, 406 },
1219
  { "verbosity", required_argument, nullptr, 407 },
1220
  { "bitblast-aig", no_argument, nullptr, 408 },
1221
  { "no-bitblast-aig", no_argument, nullptr, 409 },
1222
  { "bitblast", required_argument, nullptr, 410 },
1223
  { "bitwise-eq", no_argument, nullptr, 411 },
1224
  { "no-bitwise-eq", no_argument, nullptr, 412 },
1225
  { "bool-to-bv", required_argument, nullptr, 413 },
1226
  { "bv-abstraction", no_argument, nullptr, 414 },
1227
  { "no-bv-abstraction", no_argument, nullptr, 415 },
1228
  { "bv-aig-simp", required_argument, nullptr, 416 },
1229
  { "bv-alg-extf", no_argument, nullptr, 417 },
1230
  { "no-bv-alg-extf", no_argument, nullptr, 418 },
1231
  { "bv-algebraic-budget", required_argument, nullptr, 419 },
1232
  { "bv-algebraic-solver", no_argument, nullptr, 420 },
1233
  { "no-bv-algebraic-solver", no_argument, nullptr, 421 },
1234
  { "bv-assert-input", no_argument, nullptr, 422 },
1235
  { "no-bv-assert-input", no_argument, nullptr, 423 },
1236
  { "bv-eager-explanations", no_argument, nullptr, 424 },
1237
  { "no-bv-eager-explanations", no_argument, nullptr, 425 },
1238
  { "bv-eq-solver", no_argument, nullptr, 426 },
1239
  { "no-bv-eq-solver", no_argument, nullptr, 427 },
1240
  { "bv-extract-arith", no_argument, nullptr, 428 },
1241
  { "no-bv-extract-arith", no_argument, nullptr, 429 },
1242
  { "bv-gauss-elim", no_argument, nullptr, 430 },
1243
  { "no-bv-gauss-elim", no_argument, nullptr, 431 },
1244
  { "bv-inequality-solver", no_argument, nullptr, 432 },
1245
  { "no-bv-inequality-solver", no_argument, nullptr, 433 },
1246
  { "bv-intro-pow2", no_argument, nullptr, 434 },
1247
  { "no-bv-intro-pow2", no_argument, nullptr, 435 },
1248
  { "bv-num-func", required_argument, nullptr, 436 },
1249
  { "bv-print-consts-as-indexed-symbols", no_argument, nullptr, 437 },
1250
  { "no-bv-print-consts-as-indexed-symbols", no_argument, nullptr, 438 },
1251
  { "bv-propagate", no_argument, nullptr, 439 },
1252
  { "no-bv-propagate", no_argument, nullptr, 440 },
1253
  { "bv-quick-xplain", no_argument, nullptr, 441 },
1254
  { "no-bv-quick-xplain", no_argument, nullptr, 442 },
1255
  { "bv-sat-solver", required_argument, nullptr, 443 },
1256
  { "bv-skolemize", no_argument, nullptr, 444 },
1257
  { "no-bv-skolemize", no_argument, nullptr, 445 },
1258
  { "bv-solver", required_argument, nullptr, 446 },
1259
  { "bv-to-bool", no_argument, nullptr, 447 },
1260
  { "no-bv-to-bool", no_argument, nullptr, 448 },
1261
  { "cdt-bisimilar", no_argument, nullptr, 449 },
1262
  { "no-cdt-bisimilar", no_argument, nullptr, 450 },
1263
  { "dt-binary-split", no_argument, nullptr, 451 },
1264
  { "no-dt-binary-split", no_argument, nullptr, 452 },
1265
  { "dt-blast-splits", no_argument, nullptr, 453 },
1266
  { "no-dt-blast-splits", no_argument, nullptr, 454 },
1267
  { "dt-cyclic", no_argument, nullptr, 455 },
1268
  { "no-dt-cyclic", no_argument, nullptr, 456 },
1269
  { "dt-force-assignment", no_argument, nullptr, 457 },
1270
  { "no-dt-force-assignment", no_argument, nullptr, 458 },
1271
  { "dt-infer-as-lemmas", no_argument, nullptr, 459 },
1272
  { "no-dt-infer-as-lemmas", no_argument, nullptr, 460 },
1273
  { "dt-nested-rec", no_argument, nullptr, 461 },
1274
  { "no-dt-nested-rec", no_argument, nullptr, 462 },
1275
  { "dt-polite-optimize", no_argument, nullptr, 463 },
1276
  { "no-dt-polite-optimize", no_argument, nullptr, 464 },
1277
  { "dt-rewrite-error-sel", no_argument, nullptr, 465 },
1278
  { "no-dt-rewrite-error-sel", no_argument, nullptr, 466 },
1279
  { "dt-share-sel", no_argument, nullptr, 467 },
1280
  { "no-dt-share-sel", no_argument, nullptr, 468 },
1281
  { "sygus-abort-size", required_argument, nullptr, 469 },
1282
  { "sygus-fair-max", no_argument, nullptr, 470 },
1283
  { "no-sygus-fair-max", no_argument, nullptr, 471 },
1284
  { "sygus-fair", required_argument, nullptr, 472 },
1285
  { "sygus-sym-break", no_argument, nullptr, 473 },
1286
  { "no-sygus-sym-break", no_argument, nullptr, 474 },
1287
  { "sygus-sym-break-agg", no_argument, nullptr, 475 },
1288
  { "no-sygus-sym-break-agg", no_argument, nullptr, 476 },
1289
  { "sygus-sym-break-dynamic", no_argument, nullptr, 477 },
1290
  { "no-sygus-sym-break-dynamic", no_argument, nullptr, 478 },
1291
  { "sygus-sym-break-lazy", no_argument, nullptr, 479 },
1292
  { "no-sygus-sym-break-lazy", no_argument, nullptr, 480 },
1293
  { "sygus-sym-break-pbe", no_argument, nullptr, 481 },
1294
  { "no-sygus-sym-break-pbe", no_argument, nullptr, 482 },
1295
  { "sygus-sym-break-rlv", no_argument, nullptr, 483 },
1296
  { "no-sygus-sym-break-rlv", no_argument, nullptr, 484 },
1297
  { "decision-random-weight", required_argument, nullptr, 485 },
1298
  { "decision-threshold", required_argument, nullptr, 486 },
1299
  { "decision-use-weight", no_argument, nullptr, 487 },
1300
  { "no-decision-use-weight", no_argument, nullptr, 488 },
1301
  { "decision-weight-internal", required_argument, nullptr, 489 },
1302
  { "decision", required_argument, nullptr, 490 },
1303
  { "decision-mode", required_argument, nullptr, 491 },
1304
  { "jh-rlv-order", no_argument, nullptr, 492 },
1305
  { "no-jh-rlv-order", no_argument, nullptr, 493 },
1306
  { "jh-skolem-rlv", required_argument, nullptr, 494 },
1307
  { "jh-skolem", required_argument, nullptr, 495 },
1308
  { "dag-thresh", required_argument, nullptr, 496 },
1309
  { "expr-depth", required_argument, nullptr, 497 },
1310
  { "type-checking", no_argument, nullptr, 498 },
1311
  { "no-type-checking", no_argument, nullptr, 499 },
1312
  { "fp-exp", no_argument, nullptr, 500 },
1313
  { "no-fp-exp", no_argument, nullptr, 501 },
1314
  { "fp-lazy-wb", no_argument, nullptr, 502 },
1315
  { "no-fp-lazy-wb", no_argument, nullptr, 503 },
1316
  { "copyright", no_argument, nullptr, 504 },
1317
  { "dump-instantiations", no_argument, nullptr, 505 },
1318
  { "no-dump-instantiations", no_argument, nullptr, 506 },
1319
  { "dump-instantiations-debug", no_argument, nullptr, 507 },
1320
  { "no-dump-instantiations-debug", no_argument, nullptr, 508 },
1321
  { "dump-models", no_argument, nullptr, 509 },
1322
  { "no-dump-models", no_argument, nullptr, 510 },
1323
  { "dump-proofs", no_argument, nullptr, 511 },
1324
  { "no-dump-proofs", no_argument, nullptr, 512 },
1325
  { "dump-unsat-cores", no_argument, nullptr, 513 },
1326
  { "no-dump-unsat-cores", no_argument, nullptr, 514 },
1327
  { "dump-unsat-cores-full", no_argument, nullptr, 515 },
1328
  { "no-dump-unsat-cores-full", no_argument, nullptr, 516 },
1329
  { "early-exit", no_argument, nullptr, 517 },
1330
  { "no-early-exit", no_argument, nullptr, 518 },
1331
  { "force-no-limit-cpu-while-dump", no_argument, nullptr, 519 },
1332
  { "no-force-no-limit-cpu-while-dump", no_argument, nullptr, 520 },
1333
  { "help", no_argument, nullptr, 521 },
1334
  { "interactive", no_argument, nullptr, 522 },
1335
  { "no-interactive", no_argument, nullptr, 523 },
1336
  { "interactive-prompt", no_argument, nullptr, 524 },
1337
  { "no-interactive-prompt", no_argument, nullptr, 525 },
1338
  { "seed", required_argument, nullptr, 526 },
1339
  { "segv-spin", no_argument, nullptr, 527 },
1340
  { "no-segv-spin", no_argument, nullptr, 528 },
1341
  { "show-config", no_argument, nullptr, 529 },
1342
  { "show-debug-tags", no_argument, nullptr, 530 },
1343
  { "show-trace-tags", no_argument, nullptr, 531 },
1344
  { "version", no_argument, nullptr, 532 },
1345
  { "filesystem-access", no_argument, nullptr, 533 },
1346
  { "no-filesystem-access", no_argument, nullptr, 534 },
1347
  { "force-logic", required_argument, nullptr, 535 },
1348
  { "global-declarations", no_argument, nullptr, 536 },
1349
  { "no-global-declarations", no_argument, nullptr, 537 },
1350
  { "mmap", no_argument, nullptr, 538 },
1351
  { "no-mmap", no_argument, nullptr, 539 },
1352
  { "semantic-checks", no_argument, nullptr, 540 },
1353
  { "no-semantic-checks", no_argument, nullptr, 541 },
1354
  { "strict-parsing", no_argument, nullptr, 542 },
1355
  { "no-strict-parsing", no_argument, nullptr, 543 },
1356
  { "flatten-ho-chains", no_argument, nullptr, 544 },
1357
  { "no-flatten-ho-chains", no_argument, nullptr, 545 },
1358
  { "inst-format", required_argument, nullptr, 546 },
1359
  { "model-format", required_argument, nullptr, 547 },
1360
  { "print-inst-full", no_argument, nullptr, 548 },
1361
  { "no-print-inst-full", no_argument, nullptr, 549 },
1362
  { "print-inst", required_argument, nullptr, 550 },
1363
  { "proof-eager-checking", no_argument, nullptr, 551 },
1364
  { "no-proof-eager-checking", no_argument, nullptr, 552 },
1365
  { "proof-format-mode", required_argument, nullptr, 553 },
1366
  { "proof-granularity", required_argument, nullptr, 554 },
1367
  { "proof-pedantic", required_argument, nullptr, 555 },
1368
  { "proof-print-conclusion", no_argument, nullptr, 556 },
1369
  { "no-proof-print-conclusion", no_argument, nullptr, 557 },
1370
  { "minisat-dump-dimacs", no_argument, nullptr, 558 },
1371
  { "no-minisat-dump-dimacs", no_argument, nullptr, 559 },
1372
  { "minisat-elimination", no_argument, nullptr, 560 },
1373
  { "no-minisat-elimination", no_argument, nullptr, 561 },
1374
  { "random-freq", required_argument, nullptr, 562 },
1375
  { "random-frequency", required_argument, nullptr, 563 },
1376
  { "random-seed", required_argument, nullptr, 564 },
1377
  { "refine-conflicts", no_argument, nullptr, 565 },
1378
  { "no-refine-conflicts", no_argument, nullptr, 566 },
1379
  { "restart-int-base", required_argument, nullptr, 567 },
1380
  { "restart-int-inc", required_argument, nullptr, 568 },
1381
  { "ag-miniscope-quant", no_argument, nullptr, 569 },
1382
  { "no-ag-miniscope-quant", no_argument, nullptr, 570 },
1383
  { "cegis-sample", required_argument, nullptr, 571 },
1384
  { "cegqi", no_argument, nullptr, 572 },
1385
  { "no-cegqi", no_argument, nullptr, 573 },
1386
  { "cegqi-all", no_argument, nullptr, 574 },
1387
  { "no-cegqi-all", no_argument, nullptr, 575 },
1388
  { "cegqi-bv", no_argument, nullptr, 576 },
1389
  { "no-cegqi-bv", no_argument, nullptr, 577 },
1390
  { "cegqi-bv-concat-inv", no_argument, nullptr, 578 },
1391
  { "no-cegqi-bv-concat-inv", no_argument, nullptr, 579 },
1392
  { "cegqi-bv-ineq", required_argument, nullptr, 580 },
1393
  { "cegqi-bv-interleave-value", no_argument, nullptr, 581 },
1394
  { "no-cegqi-bv-interleave-value", no_argument, nullptr, 582 },
1395
  { "cegqi-bv-linear", no_argument, nullptr, 583 },
1396
  { "no-cegqi-bv-linear", no_argument, nullptr, 584 },
1397
  { "cegqi-bv-rm-extract", no_argument, nullptr, 585 },
1398
  { "no-cegqi-bv-rm-extract", no_argument, nullptr, 586 },
1399
  { "cegqi-bv-solve-nl", no_argument, nullptr, 587 },
1400
  { "no-cegqi-bv-solve-nl", no_argument, nullptr, 588 },
1401
  { "cegqi-full", no_argument, nullptr, 589 },
1402
  { "no-cegqi-full", no_argument, nullptr, 590 },
1403
  { "cegqi-innermost", no_argument, nullptr, 591 },
1404
  { "no-cegqi-innermost", no_argument, nullptr, 592 },
1405
  { "cegqi-midpoint", no_argument, nullptr, 593 },
1406
  { "no-cegqi-midpoint", no_argument, nullptr, 594 },
1407
  { "cegqi-min-bounds", no_argument, nullptr, 595 },
1408
  { "no-cegqi-min-bounds", no_argument, nullptr, 596 },
1409
  { "cegqi-model", no_argument, nullptr, 597 },
1410
  { "no-cegqi-model", no_argument, nullptr, 598 },
1411
  { "cegqi-multi-inst", no_argument, nullptr, 599 },
1412
  { "no-cegqi-multi-inst", no_argument, nullptr, 600 },
1413
  { "cegqi-nested-qe", no_argument, nullptr, 601 },
1414
  { "no-cegqi-nested-qe", no_argument, nullptr, 602 },
1415
  { "cegqi-nopt", no_argument, nullptr, 603 },
1416
  { "no-cegqi-nopt", no_argument, nullptr, 604 },
1417
  { "cegqi-repeat-lit", no_argument, nullptr, 605 },
1418
  { "no-cegqi-repeat-lit", no_argument, nullptr, 606 },
1419
  { "cegqi-round-up-lia", no_argument, nullptr, 607 },
1420
  { "no-cegqi-round-up-lia", no_argument, nullptr, 608 },
1421
  { "cegqi-sat", no_argument, nullptr, 609 },
1422
  { "no-cegqi-sat", no_argument, nullptr, 610 },
1423
  { "cegqi-use-inf-int", no_argument, nullptr, 611 },
1424
  { "no-cegqi-use-inf-int", no_argument, nullptr, 612 },
1425
  { "cegqi-use-inf-real", no_argument, nullptr, 613 },
1426
  { "no-cegqi-use-inf-real", no_argument, nullptr, 614 },
1427
  { "cond-var-split-agg-quant", no_argument, nullptr, 615 },
1428
  { "no-cond-var-split-agg-quant", no_argument, nullptr, 616 },
1429
  { "cond-var-split-quant", no_argument, nullptr, 617 },
1430
  { "no-cond-var-split-quant", no_argument, nullptr, 618 },
1431
  { "conjecture-filter-active-terms", no_argument, nullptr, 619 },
1432
  { "no-conjecture-filter-active-terms", no_argument, nullptr, 620 },
1433
  { "conjecture-filter-canonical", no_argument, nullptr, 621 },
1434
  { "no-conjecture-filter-canonical", no_argument, nullptr, 622 },
1435
  { "conjecture-filter-model", no_argument, nullptr, 623 },
1436
  { "no-conjecture-filter-model", no_argument, nullptr, 624 },
1437
  { "conjecture-gen", no_argument, nullptr, 625 },
1438
  { "no-conjecture-gen", no_argument, nullptr, 626 },
1439
  { "conjecture-gen-gt-enum", required_argument, nullptr, 627 },
1440
  { "conjecture-gen-max-depth", required_argument, nullptr, 628 },
1441
  { "conjecture-gen-per-round", required_argument, nullptr, 629 },
1442
  { "conjecture-gen-uee-intro", no_argument, nullptr, 630 },
1443
  { "no-conjecture-gen-uee-intro", no_argument, nullptr, 631 },
1444
  { "conjecture-no-filter", no_argument, nullptr, 632 },
1445
  { "no-conjecture-no-filter", no_argument, nullptr, 633 },
1446
  { "dt-stc-ind", no_argument, nullptr, 634 },
1447
  { "no-dt-stc-ind", no_argument, nullptr, 635 },
1448
  { "dt-var-exp-quant", no_argument, nullptr, 636 },
1449
  { "no-dt-var-exp-quant", no_argument, nullptr, 637 },
1450
  { "e-matching", no_argument, nullptr, 638 },
1451
  { "no-e-matching", no_argument, nullptr, 639 },
1452
  { "elim-taut-quant", no_argument, nullptr, 640 },
1453
  { "no-elim-taut-quant", no_argument, nullptr, 641 },
1454
  { "ext-rewrite-quant", no_argument, nullptr, 642 },
1455
  { "no-ext-rewrite-quant", no_argument, nullptr, 643 },
1456
  { "finite-model-find", no_argument, nullptr, 644 },
1457
  { "no-finite-model-find", no_argument, nullptr, 645 },
1458
  { "fmf-bound", no_argument, nullptr, 646 },
1459
  { "no-fmf-bound", no_argument, nullptr, 647 },
1460
  { "fmf-bound-int", no_argument, nullptr, 648 },
1461
  { "no-fmf-bound-int", no_argument, nullptr, 649 },
1462
  { "fmf-bound-lazy", no_argument, nullptr, 650 },
1463
  { "no-fmf-bound-lazy", no_argument, nullptr, 651 },
1464
  { "fmf-fmc-simple", no_argument, nullptr, 652 },
1465
  { "no-fmf-fmc-simple", no_argument, nullptr, 653 },
1466
  { "fmf-fresh-dc", no_argument, nullptr, 654 },
1467
  { "no-fmf-fresh-dc", no_argument, nullptr, 655 },
1468
  { "fmf-fun", no_argument, nullptr, 656 },
1469
  { "no-fmf-fun", no_argument, nullptr, 657 },
1470
  { "fmf-fun-rlv", no_argument, nullptr, 658 },
1471
  { "no-fmf-fun-rlv", no_argument, nullptr, 659 },
1472
  { "fmf-inst-engine", no_argument, nullptr, 660 },
1473
  { "no-fmf-inst-engine", no_argument, nullptr, 661 },
1474
  { "fmf-type-completion-thresh", required_argument, nullptr, 662 },
1475
  { "fs-interleave", no_argument, nullptr, 663 },
1476
  { "no-fs-interleave", no_argument, nullptr, 664 },
1477
  { "fs-stratify", no_argument, nullptr, 665 },
1478
  { "no-fs-stratify", no_argument, nullptr, 666 },
1479
  { "fs-sum", no_argument, nullptr, 667 },
1480
  { "no-fs-sum", no_argument, nullptr, 668 },
1481
  { "full-saturate-quant", no_argument, nullptr, 669 },
1482
  { "no-full-saturate-quant", no_argument, nullptr, 670 },
1483
  { "full-saturate-quant-limit", required_argument, nullptr, 671 },
1484
  { "full-saturate-quant-rd", no_argument, nullptr, 672 },
1485
  { "no-full-saturate-quant-rd", no_argument, nullptr, 673 },
1486
  { "global-negate", no_argument, nullptr, 674 },
1487
  { "no-global-negate", no_argument, nullptr, 675 },
1488
  { "ho-elim", no_argument, nullptr, 676 },
1489
  { "no-ho-elim", no_argument, nullptr, 677 },
1490
  { "ho-elim-store-ax", no_argument, nullptr, 678 },
1491
  { "no-ho-elim-store-ax", no_argument, nullptr, 679 },
1492
  { "ho-matching", no_argument, nullptr, 680 },
1493
  { "no-ho-matching", no_argument, nullptr, 681 },
1494
  { "ho-matching-var-priority", no_argument, nullptr, 682 },
1495
  { "no-ho-matching-var-priority", no_argument, nullptr, 683 },
1496
  { "ho-merge-term-db", no_argument, nullptr, 684 },
1497
  { "no-ho-merge-term-db", no_argument, nullptr, 685 },
1498
  { "increment-triggers", no_argument, nullptr, 686 },
1499
  { "no-increment-triggers", no_argument, nullptr, 687 },
1500
  { "inst-level-input-only", no_argument, nullptr, 688 },
1501
  { "no-inst-level-input-only", no_argument, nullptr, 689 },
1502
  { "inst-max-level", required_argument, nullptr, 690 },
1503
  { "inst-max-rounds", required_argument, nullptr, 691 },
1504
  { "inst-no-entail", no_argument, nullptr, 692 },
1505
  { "no-inst-no-entail", no_argument, nullptr, 693 },
1506
  { "inst-when-phase", required_argument, nullptr, 694 },
1507
  { "inst-when-strict-interleave", no_argument, nullptr, 695 },
1508
  { "no-inst-when-strict-interleave", no_argument, nullptr, 696 },
1509
  { "inst-when-tc-first", no_argument, nullptr, 697 },
1510
  { "no-inst-when-tc-first", no_argument, nullptr, 698 },
1511
  { "inst-when", required_argument, nullptr, 699 },
1512
  { "int-wf-ind", no_argument, nullptr, 700 },
1513
  { "no-int-wf-ind", no_argument, nullptr, 701 },
1514
  { "ite-dtt-split-quant", no_argument, nullptr, 702 },
1515
  { "no-ite-dtt-split-quant", no_argument, nullptr, 703 },
1516
  { "ite-lift-quant", required_argument, nullptr, 704 },
1517
  { "literal-matching", required_argument, nullptr, 705 },
1518
  { "macros-quant", no_argument, nullptr, 706 },
1519
  { "no-macros-quant", no_argument, nullptr, 707 },
1520
  { "macros-quant-mode", required_argument, nullptr, 708 },
1521
  { "mbqi-interleave", no_argument, nullptr, 709 },
1522
  { "no-mbqi-interleave", no_argument, nullptr, 710 },
1523
  { "mbqi-one-inst-per-round", no_argument, nullptr, 711 },
1524
  { "no-mbqi-one-inst-per-round", no_argument, nullptr, 712 },
1525
  { "mbqi", required_argument, nullptr, 713 },
1526
  { "miniscope-quant", no_argument, nullptr, 714 },
1527
  { "no-miniscope-quant", no_argument, nullptr, 715 },
1528
  { "miniscope-quant-fv", no_argument, nullptr, 716 },
1529
  { "no-miniscope-quant-fv", no_argument, nullptr, 717 },
1530
  { "multi-trigger-cache", no_argument, nullptr, 718 },
1531
  { "no-multi-trigger-cache", no_argument, nullptr, 719 },
1532
  { "multi-trigger-linear", no_argument, nullptr, 720 },
1533
  { "no-multi-trigger-linear", no_argument, nullptr, 721 },
1534
  { "multi-trigger-priority", no_argument, nullptr, 722 },
1535
  { "no-multi-trigger-priority", no_argument, nullptr, 723 },
1536
  { "multi-trigger-when-single", no_argument, nullptr, 724 },
1537
  { "no-multi-trigger-when-single", no_argument, nullptr, 725 },
1538
  { "partial-triggers", no_argument, nullptr, 726 },
1539
  { "no-partial-triggers", no_argument, nullptr, 727 },
1540
  { "pool-inst", no_argument, nullptr, 728 },
1541
  { "no-pool-inst", no_argument, nullptr, 729 },
1542
  { "pre-skolem-quant", no_argument, nullptr, 730 },
1543
  { "no-pre-skolem-quant", no_argument, nullptr, 731 },
1544
  { "pre-skolem-quant-agg", no_argument, nullptr, 732 },
1545
  { "no-pre-skolem-quant-agg", no_argument, nullptr, 733 },
1546
  { "pre-skolem-quant-nested", no_argument, nullptr, 734 },
1547
  { "no-pre-skolem-quant-nested", no_argument, nullptr, 735 },
1548
  { "prenex-quant-user", no_argument, nullptr, 736 },
1549
  { "no-prenex-quant-user", no_argument, nullptr, 737 },
1550
  { "prenex-quant", required_argument, nullptr, 738 },
1551
  { "purify-triggers", no_argument, nullptr, 739 },
1552
  { "no-purify-triggers", no_argument, nullptr, 740 },
1553
  { "qcf-all-conflict", no_argument, nullptr, 741 },
1554
  { "no-qcf-all-conflict", no_argument, nullptr, 742 },
1555
  { "qcf-eager-check-rd", no_argument, nullptr, 743 },
1556
  { "no-qcf-eager-check-rd", no_argument, nullptr, 744 },
1557
  { "qcf-eager-test", no_argument, nullptr, 745 },
1558
  { "no-qcf-eager-test", no_argument, nullptr, 746 },
1559
  { "qcf-nested-conflict", no_argument, nullptr, 747 },
1560
  { "no-qcf-nested-conflict", no_argument, nullptr, 748 },
1561
  { "qcf-skip-rd", no_argument, nullptr, 749 },
1562
  { "no-qcf-skip-rd", no_argument, nullptr, 750 },
1563
  { "qcf-tconstraint", no_argument, nullptr, 751 },
1564
  { "no-qcf-tconstraint", no_argument, nullptr, 752 },
1565
  { "qcf-vo-exp", no_argument, nullptr, 753 },
1566
  { "no-qcf-vo-exp", no_argument, nullptr, 754 },
1567
  { "quant-alpha-equiv", no_argument, nullptr, 755 },
1568
  { "no-quant-alpha-equiv", no_argument, nullptr, 756 },
1569
  { "quant-cf", no_argument, nullptr, 757 },
1570
  { "no-quant-cf", no_argument, nullptr, 758 },
1571
  { "quant-cf-mode", required_argument, nullptr, 759 },
1572
  { "quant-cf-when", required_argument, nullptr, 760 },
1573
  { "quant-dsplit-mode", required_argument, nullptr, 761 },
1574
  { "quant-fun-wd", no_argument, nullptr, 762 },
1575
  { "no-quant-fun-wd", no_argument, nullptr, 763 },
1576
  { "quant-ind", no_argument, nullptr, 764 },
1577
  { "no-quant-ind", no_argument, nullptr, 765 },
1578
  { "quant-rep-mode", required_argument, nullptr, 766 },
1579
  { "quant-split", no_argument, nullptr, 767 },
1580
  { "no-quant-split", no_argument, nullptr, 768 },
1581
  { "register-quant-body-terms", no_argument, nullptr, 769 },
1582
  { "no-register-quant-body-terms", no_argument, nullptr, 770 },
1583
  { "relational-triggers", no_argument, nullptr, 771 },
1584
  { "no-relational-triggers", no_argument, nullptr, 772 },
1585
  { "relevant-triggers", no_argument, nullptr, 773 },
1586
  { "no-relevant-triggers", no_argument, nullptr, 774 },
1587
  { "strict-triggers", no_argument, nullptr, 775 },
1588
  { "no-strict-triggers", no_argument, nullptr, 776 },
1589
  { "sygus", no_argument, nullptr, 777 },
1590
  { "no-sygus", no_argument, nullptr, 778 },
1591
  { "sygus-active-gen-cfactor", required_argument, nullptr, 779 },
1592
  { "sygus-active-gen", required_argument, nullptr, 780 },
1593
  { "sygus-add-const-grammar", no_argument, nullptr, 781 },
1594
  { "no-sygus-add-const-grammar", no_argument, nullptr, 782 },
1595
  { "sygus-arg-relevant", no_argument, nullptr, 783 },
1596
  { "no-sygus-arg-relevant", no_argument, nullptr, 784 },
1597
  { "sygus-auto-unfold", no_argument, nullptr, 785 },
1598
  { "no-sygus-auto-unfold", no_argument, nullptr, 786 },
1599
  { "sygus-bool-ite-return-const", no_argument, nullptr, 787 },
1600
  { "no-sygus-bool-ite-return-const", no_argument, nullptr, 788 },
1601
  { "sygus-core-connective", no_argument, nullptr, 789 },
1602
  { "no-sygus-core-connective", no_argument, nullptr, 790 },
1603
  { "sygus-crepair-abort", no_argument, nullptr, 791 },
1604
  { "no-sygus-crepair-abort", no_argument, nullptr, 792 },
1605
  { "sygus-eval-opt", no_argument, nullptr, 793 },
1606
  { "no-sygus-eval-opt", no_argument, nullptr, 794 },
1607
  { "sygus-eval-unfold", no_argument, nullptr, 795 },
1608
  { "no-sygus-eval-unfold", no_argument, nullptr, 796 },
1609
  { "sygus-eval-unfold-bool", no_argument, nullptr, 797 },
1610
  { "no-sygus-eval-unfold-bool", no_argument, nullptr, 798 },
1611
  { "sygus-expr-miner-check-timeout", required_argument, nullptr, 799 },
1612
  { "sygus-ext-rew", no_argument, nullptr, 800 },
1613
  { "no-sygus-ext-rew", no_argument, nullptr, 801 },
1614
  { "sygus-filter-sol-rev", no_argument, nullptr, 802 },
1615
  { "no-sygus-filter-sol-rev", no_argument, nullptr, 803 },
1616
  { "sygus-filter-sol", required_argument, nullptr, 804 },
1617
  { "sygus-grammar-cons", required_argument, nullptr, 805 },
1618
  { "sygus-grammar-norm", no_argument, nullptr, 806 },
1619
  { "no-sygus-grammar-norm", no_argument, nullptr, 807 },
1620
  { "sygus-inference", no_argument, nullptr, 808 },
1621
  { "no-sygus-inference", no_argument, nullptr, 809 },
1622
  { "sygus-inst", no_argument, nullptr, 810 },
1623
  { "no-sygus-inst", no_argument, nullptr, 811 },
1624
  { "sygus-inst-mode", required_argument, nullptr, 812 },
1625
  { "sygus-inst-scope", required_argument, nullptr, 813 },
1626
  { "sygus-inst-term-sel", required_argument, nullptr, 814 },
1627
  { "sygus-inv-templ-when-sg", no_argument, nullptr, 815 },
1628
  { "no-sygus-inv-templ-when-sg", no_argument, nullptr, 816 },
1629
  { "sygus-inv-templ", required_argument, nullptr, 817 },
1630
  { "sygus-min-grammar", no_argument, nullptr, 818 },
1631
  { "no-sygus-min-grammar", no_argument, nullptr, 819 },
1632
  { "sygus-pbe", no_argument, nullptr, 820 },
1633
  { "no-sygus-pbe", no_argument, nullptr, 821 },
1634
  { "sygus-pbe-multi-fair", no_argument, nullptr, 822 },
1635
  { "no-sygus-pbe-multi-fair", no_argument, nullptr, 823 },
1636
  { "sygus-pbe-multi-fair-diff", required_argument, nullptr, 824 },
1637
  { "sygus-qe-preproc", no_argument, nullptr, 825 },
1638
  { "no-sygus-qe-preproc", no_argument, nullptr, 826 },
1639
  { "sygus-query-gen", no_argument, nullptr, 827 },
1640
  { "no-sygus-query-gen", no_argument, nullptr, 828 },
1641
  { "sygus-query-gen-check", no_argument, nullptr, 829 },
1642
  { "no-sygus-query-gen-check", no_argument, nullptr, 830 },
1643
  { "sygus-query-gen-dump-files", required_argument, nullptr, 831 },
1644
  { "sygus-query-gen-thresh", required_argument, nullptr, 832 },
1645
  { "sygus-rec-fun", no_argument, nullptr, 833 },
1646
  { "no-sygus-rec-fun", no_argument, nullptr, 834 },
1647
  { "sygus-rec-fun-eval-limit", required_argument, nullptr, 835 },
1648
  { "sygus-repair-const", no_argument, nullptr, 836 },
1649
  { "no-sygus-repair-const", no_argument, nullptr, 837 },
1650
  { "sygus-repair-const-timeout", required_argument, nullptr, 838 },
1651
  { "sygus-rr", no_argument, nullptr, 839 },
1652
  { "no-sygus-rr", no_argument, nullptr, 840 },
1653
  { "sygus-rr-synth", no_argument, nullptr, 841 },
1654
  { "no-sygus-rr-synth", no_argument, nullptr, 842 },
1655
  { "sygus-rr-synth-accel", no_argument, nullptr, 843 },
1656
  { "no-sygus-rr-synth-accel", no_argument, nullptr, 844 },
1657
  { "sygus-rr-synth-check", no_argument, nullptr, 845 },
1658
  { "no-sygus-rr-synth-check", no_argument, nullptr, 846 },
1659
  { "sygus-rr-synth-filter-cong", no_argument, nullptr, 847 },
1660
  { "no-sygus-rr-synth-filter-cong", no_argument, nullptr, 848 },
1661
  { "sygus-rr-synth-filter-match", no_argument, nullptr, 849 },
1662
  { "no-sygus-rr-synth-filter-match", no_argument, nullptr, 850 },
1663
  { "sygus-rr-synth-filter-nl", no_argument, nullptr, 851 },
1664
  { "no-sygus-rr-synth-filter-nl", no_argument, nullptr, 852 },
1665
  { "sygus-rr-synth-filter-order", no_argument, nullptr, 853 },
1666
  { "no-sygus-rr-synth-filter-order", no_argument, nullptr, 854 },
1667
  { "sygus-rr-synth-input", no_argument, nullptr, 855 },
1668
  { "no-sygus-rr-synth-input", no_argument, nullptr, 856 },
1669
  { "sygus-rr-synth-input-nvars", required_argument, nullptr, 857 },
1670
  { "sygus-rr-synth-input-use-bool", no_argument, nullptr, 858 },
1671
  { "no-sygus-rr-synth-input-use-bool", no_argument, nullptr, 859 },
1672
  { "sygus-rr-synth-rec", no_argument, nullptr, 860 },
1673
  { "no-sygus-rr-synth-rec", no_argument, nullptr, 861 },
1674
  { "sygus-rr-verify", no_argument, nullptr, 862 },
1675
  { "no-sygus-rr-verify", no_argument, nullptr, 863 },
1676
  { "sygus-rr-verify-abort", no_argument, nullptr, 864 },
1677
  { "no-sygus-rr-verify-abort", no_argument, nullptr, 865 },
1678
  { "sygus-sample-fp-uniform", no_argument, nullptr, 866 },
1679
  { "no-sygus-sample-fp-uniform", no_argument, nullptr, 867 },
1680
  { "sygus-sample-grammar", no_argument, nullptr, 868 },
1681
  { "no-sygus-sample-grammar", no_argument, nullptr, 869 },
1682
  { "sygus-samples", required_argument, nullptr, 870 },
1683
  { "sygus-si-abort", no_argument, nullptr, 871 },
1684
  { "no-sygus-si-abort", no_argument, nullptr, 872 },
1685
  { "sygus-si-partial", no_argument, nullptr, 873 },
1686
  { "no-sygus-si-partial", no_argument, nullptr, 874 },
1687
  { "sygus-si-rcons-limit", required_argument, nullptr, 875 },
1688
  { "sygus-si-rcons", required_argument, nullptr, 876 },
1689
  { "sygus-si-reconstruct-const", no_argument, nullptr, 877 },
1690
  { "no-sygus-si-reconstruct-const", no_argument, nullptr, 878 },
1691
  { "sygus-si", required_argument, nullptr, 879 },
1692
  { "sygus-stream", no_argument, nullptr, 880 },
1693
  { "no-sygus-stream", no_argument, nullptr, 881 },
1694
  { "sygus-templ-embed-grammar", no_argument, nullptr, 882 },
1695
  { "no-sygus-templ-embed-grammar", no_argument, nullptr, 883 },
1696
  { "sygus-unif-cond-independent-no-repeat-sol", no_argument, nullptr, 884 },
1697
  { "no-sygus-unif-cond-independent-no-repeat-sol", no_argument, nullptr, 885 },
1698
  { "sygus-unif-pi", required_argument, nullptr, 886 },
1699
  { "sygus-unif-shuffle-cond", no_argument, nullptr, 887 },
1700
  { "no-sygus-unif-shuffle-cond", no_argument, nullptr, 888 },
1701
  { "sygus-verify-inst-max-rounds", required_argument, nullptr, 889 },
1702
  { "term-db-cd", no_argument, nullptr, 890 },
1703
  { "no-term-db-cd", no_argument, nullptr, 891 },
1704
  { "term-db-mode", required_argument, nullptr, 892 },
1705
  { "trigger-active-sel", required_argument, nullptr, 893 },
1706
  { "trigger-sel", required_argument, nullptr, 894 },
1707
  { "user-pat", required_argument, nullptr, 895 },
1708
  { "var-elim-quant", no_argument, nullptr, 896 },
1709
  { "no-var-elim-quant", no_argument, nullptr, 897 },
1710
  { "var-ineq-elim-quant", no_argument, nullptr, 898 },
1711
  { "no-var-ineq-elim-quant", no_argument, nullptr, 899 },
1712
  { "sep-check-neg", no_argument, nullptr, 900 },
1713
  { "no-sep-check-neg", no_argument, nullptr, 901 },
1714
  { "sep-child-refine", no_argument, nullptr, 902 },
1715
  { "no-sep-child-refine", no_argument, nullptr, 903 },
1716
  { "sep-deq-c", no_argument, nullptr, 904 },
1717
  { "no-sep-deq-c", no_argument, nullptr, 905 },
1718
  { "sep-exp", no_argument, nullptr, 906 },
1719
  { "no-sep-exp", no_argument, nullptr, 907 },
1720
  { "sep-min-refine", no_argument, nullptr, 908 },
1721
  { "no-sep-min-refine", no_argument, nullptr, 909 },
1722
  { "sep-pre-skolem-emp", no_argument, nullptr, 910 },
1723
  { "no-sep-pre-skolem-emp", no_argument, nullptr, 911 },
1724
  { "sets-ext", no_argument, nullptr, 912 },
1725
  { "no-sets-ext", no_argument, nullptr, 913 },
1726
  { "sets-infer-as-lemmas", no_argument, nullptr, 914 },
1727
  { "no-sets-infer-as-lemmas", no_argument, nullptr, 915 },
1728
  { "sets-proxy-lemmas", no_argument, nullptr, 916 },
1729
  { "no-sets-proxy-lemmas", no_argument, nullptr, 917 },
1730
  { "abstract-values", no_argument, nullptr, 918 },
1731
  { "no-abstract-values", no_argument, nullptr, 919 },
1732
  { "ackermann", no_argument, nullptr, 920 },
1733
  { "no-ackermann", no_argument, nullptr, 921 },
1734
  { "block-models", required_argument, nullptr, 922 },
1735
  { "bvand-integer-granularity", required_argument, nullptr, 923 },
1736
  { "check-abducts", no_argument, nullptr, 924 },
1737
  { "no-check-abducts", no_argument, nullptr, 925 },
1738
  { "check-interpols", no_argument, nullptr, 926 },
1739
  { "no-check-interpols", no_argument, nullptr, 927 },
1740
  { "check-models", no_argument, nullptr, 928 },
1741
  { "no-check-models", no_argument, nullptr, 929 },
1742
  { "check-proofs", no_argument, nullptr, 930 },
1743
  { "no-check-proofs", no_argument, nullptr, 931 },
1744
  { "check-synth-sol", no_argument, nullptr, 932 },
1745
  { "no-check-synth-sol", no_argument, nullptr, 933 },
1746
  { "check-unsat-cores", no_argument, nullptr, 934 },
1747
  { "no-check-unsat-cores", no_argument, nullptr, 935 },
1748
  { "debug-check-models", no_argument, nullptr, 936 },
1749
  { "no-debug-check-models", no_argument, nullptr, 937 },
1750
  { "dump-to", required_argument, nullptr, 938 },
1751
  { "dump", required_argument, nullptr, 939 },
1752
  { "early-ite-removal", no_argument, nullptr, 940 },
1753
  { "no-early-ite-removal", no_argument, nullptr, 941 },
1754
  { "expand-definitions", no_argument, nullptr, 942 },
1755
  { "no-expand-definitions", no_argument, nullptr, 943 },
1756
  { "ext-rew-prep", no_argument, nullptr, 944 },
1757
  { "no-ext-rew-prep", no_argument, nullptr, 945 },
1758
  { "ext-rew-prep-agg", no_argument, nullptr, 946 },
1759
  { "no-ext-rew-prep-agg", no_argument, nullptr, 947 },
1760
  { "foreign-theory-rewrite", no_argument, nullptr, 948 },
1761
  { "no-foreign-theory-rewrite", no_argument, nullptr, 949 },
1762
  { "iand-mode", required_argument, nullptr, 950 },
1763
  { "interactive-mode", no_argument, nullptr, 951 },
1764
  { "no-interactive-mode", no_argument, nullptr, 952 },
1765
  { "ite-simp", no_argument, nullptr, 953 },
1766
  { "no-ite-simp", no_argument, nullptr, 954 },
1767
  { "learned-rewrite", no_argument, nullptr, 955 },
1768
  { "no-learned-rewrite", no_argument, nullptr, 956 },
1769
  { "minimal-unsat-cores", no_argument, nullptr, 957 },
1770
  { "no-minimal-unsat-cores", no_argument, nullptr, 958 },
1771
  { "model-cores", required_argument, nullptr, 959 },
1772
  { "model-u-print", required_argument, nullptr, 960 },
1773
  { "model-uninterp-print", required_argument, nullptr, 961 },
1774
  { "model-witness-value", no_argument, nullptr, 962 },
1775
  { "no-model-witness-value", no_argument, nullptr, 963 },
1776
  { "on-repeat-ite-simp", no_argument, nullptr, 964 },
1777
  { "no-on-repeat-ite-simp", no_argument, nullptr, 965 },
1778
  { "produce-abducts", no_argument, nullptr, 966 },
1779
  { "no-produce-abducts", no_argument, nullptr, 967 },
1780
  { "produce-assertions", no_argument, nullptr, 968 },
1781
  { "no-produce-assertions", no_argument, nullptr, 969 },
1782
  { "produce-assignments", no_argument, nullptr, 970 },
1783
  { "no-produce-assignments", no_argument, nullptr, 971 },
1784
  { "produce-interpols", required_argument, nullptr, 972 },
1785
  { "produce-models", no_argument, nullptr, 973 },
1786
  { "no-produce-models", no_argument, nullptr, 974 },
1787
  { "produce-proofs", no_argument, nullptr, 975 },
1788
  { "no-produce-proofs", no_argument, nullptr, 976 },
1789
  { "produce-unsat-assumptions", no_argument, nullptr, 977 },
1790
  { "no-produce-unsat-assumptions", no_argument, nullptr, 978 },
1791
  { "produce-unsat-cores", no_argument, nullptr, 979 },
1792
  { "no-produce-unsat-cores", no_argument, nullptr, 980 },
1793
  { "repeat-simp", no_argument, nullptr, 981 },
1794
  { "no-repeat-simp", no_argument, nullptr, 982 },
1795
  { "simp-ite-compress", no_argument, nullptr, 983 },
1796
  { "no-simp-ite-compress", no_argument, nullptr, 984 },
1797
  { "simp-ite-hunt-zombies", required_argument, nullptr, 985 },
1798
  { "simp-with-care", no_argument, nullptr, 986 },
1799
  { "no-simp-with-care", no_argument, nullptr, 987 },
1800
  { "simplification", required_argument, nullptr, 988 },
1801
  { "simplification-mode", required_argument, nullptr, 989 },
1802
  { "solve-bv-as-int", required_argument, nullptr, 990 },
1803
  { "solve-int-as-bv", required_argument, nullptr, 991 },
1804
  { "solve-real-as-int", no_argument, nullptr, 992 },
1805
  { "no-solve-real-as-int", no_argument, nullptr, 993 },
1806
  { "sort-inference", no_argument, nullptr, 994 },
1807
  { "no-sort-inference", no_argument, nullptr, 995 },
1808
  { "static-learning", no_argument, nullptr, 996 },
1809
  { "no-static-learning", no_argument, nullptr, 997 },
1810
  { "sygus-out", required_argument, nullptr, 998 },
1811
  { "sygus-print-callbacks", no_argument, nullptr, 999 },
1812
  { "no-sygus-print-callbacks", no_argument, nullptr, 1000 },
1813
  { "unconstrained-simp", no_argument, nullptr, 1001 },
1814
  { "no-unconstrained-simp", no_argument, nullptr, 1002 },
1815
  { "unsat-cores-mode", required_argument, nullptr, 1003 },
1816
  { "re-elim", no_argument, nullptr, 1004 },
1817
  { "no-re-elim", no_argument, nullptr, 1005 },
1818
  { "re-elim-agg", no_argument, nullptr, 1006 },
1819
  { "no-re-elim-agg", no_argument, nullptr, 1007 },
1820
  { "re-inter-mode", required_argument, nullptr, 1008 },
1821
  { "strings-check-entail-len", no_argument, nullptr, 1009 },
1822
  { "no-strings-check-entail-len", no_argument, nullptr, 1010 },
1823
  { "strings-eager", no_argument, nullptr, 1011 },
1824
  { "no-strings-eager", no_argument, nullptr, 1012 },
1825
  { "strings-eager-eval", no_argument, nullptr, 1013 },
1826
  { "no-strings-eager-eval", no_argument, nullptr, 1014 },
1827
  { "strings-eager-len", no_argument, nullptr, 1015 },
1828
  { "no-strings-eager-len", no_argument, nullptr, 1016 },
1829
  { "strings-exp", no_argument, nullptr, 1017 },
1830
  { "no-strings-exp", no_argument, nullptr, 1018 },
1831
  { "strings-ff", no_argument, nullptr, 1019 },
1832
  { "no-strings-ff", no_argument, nullptr, 1020 },
1833
  { "strings-fmf", no_argument, nullptr, 1021 },
1834
  { "no-strings-fmf", no_argument, nullptr, 1022 },
1835
  { "strings-guess-model", no_argument, nullptr, 1023 },
1836
  { "no-strings-guess-model", no_argument, nullptr, 1024 },
1837
  { "strings-infer-as-lemmas", no_argument, nullptr, 1025 },
1838
  { "no-strings-infer-as-lemmas", no_argument, nullptr, 1026 },
1839
  { "strings-infer-sym", no_argument, nullptr, 1027 },
1840
  { "no-strings-infer-sym", no_argument, nullptr, 1028 },
1841
  { "strings-lazy-pp", no_argument, nullptr, 1029 },
1842
  { "no-strings-lazy-pp", no_argument, nullptr, 1030 },
1843
  { "strings-len-norm", no_argument, nullptr, 1031 },
1844
  { "no-strings-len-norm", no_argument, nullptr, 1032 },
1845
  { "strings-lprop-csp", no_argument, nullptr, 1033 },
1846
  { "no-strings-lprop-csp", no_argument, nullptr, 1034 },
1847
  { "strings-min-prefix-explain", no_argument, nullptr, 1035 },
1848
  { "no-strings-min-prefix-explain", no_argument, nullptr, 1036 },
1849
  { "strings-process-loop-mode", required_argument, nullptr, 1037 },
1850
  { "strings-rexplain-lemmas", no_argument, nullptr, 1038 },
1851
  { "no-strings-rexplain-lemmas", no_argument, nullptr, 1039 },
1852
  { "strings-unified-vspt", no_argument, nullptr, 1040 },
1853
  { "no-strings-unified-vspt", no_argument, nullptr, 1041 },
1854
  { "assign-function-values", no_argument, nullptr, 1042 },
1855
  { "no-assign-function-values", no_argument, nullptr, 1043 },
1856
  { "condense-function-values", no_argument, nullptr, 1044 },
1857
  { "no-condense-function-values", no_argument, nullptr, 1045 },
1858
  { "ee-mode", required_argument, nullptr, 1046 },
1859
  { "relevance-filter", no_argument, nullptr, 1047 },
1860
  { "no-relevance-filter", no_argument, nullptr, 1048 },
1861
  { "tc-mode", required_argument, nullptr, 1049 },
1862
  { "theoryof-mode", required_argument, nullptr, 1050 },
1863
  { "symmetry-breaker", no_argument, nullptr, 1051 },
1864
  { "uf-symmetry-breaker", no_argument, nullptr, 1052 },
1865
  { "no-symmetry-breaker", no_argument, nullptr, 1053 },
1866
  { "no-uf-symmetry-breaker", no_argument, nullptr, 1054 },
1867
  { "uf-ho", no_argument, nullptr, 1055 },
1868
  { "no-uf-ho", no_argument, nullptr, 1056 },
1869
  { "uf-ho-ext", no_argument, nullptr, 1057 },
1870
  { "no-uf-ho-ext", no_argument, nullptr, 1058 },
1871
  { "uf-ss-abort-card", required_argument, nullptr, 1059 },
1872
  { "uf-ss-fair", no_argument, nullptr, 1060 },
1873
  { "no-uf-ss-fair", no_argument, nullptr, 1061 },
1874
  { "uf-ss-fair-monotone", no_argument, nullptr, 1062 },
1875
  { "no-uf-ss-fair-monotone", no_argument, nullptr, 1063 },
1876
  { "uf-ss-totality-limited", required_argument, nullptr, 1064 },
1877
  { "uf-ss-totality-sym-break", no_argument, nullptr, 1065 },
1878
  { "no-uf-ss-totality-sym-break", no_argument, nullptr, 1066 },
1879
  { "uf-ss", required_argument, nullptr, 1067 },
1880
  {nullptr, no_argument, nullptr, '\0'}};
1881
// clang-format on
1882
1883
std::string suggestCommandLineOptions(const std::string& optionName)
1884
{
1885
  DidYouMean didYouMean;
1886
1887
  const char* opt;
1888
  for(size_t i = 0; (opt = cmdlineOptions[i].name) != nullptr; ++i) {
1889
    didYouMean.addWord(std::string("--") + cmdlineOptions[i].name);
1890
  }
1891
1892
  return didYouMean.getMatchAsString(optionName.substr(0, optionName.find('=')));
1893
}
1894
1895
/**
1896
 * This is a default handler for options of built-in C++ type.  This
1897
 * template is really just a helper for the handleOption() template,
1898
 * below.  Variants of this template handle numeric and non-numeric,
1899
 * integral and non-integral, signed and unsigned C++ types.
1900
 * handleOption() makes sure to instantiate the right one.
1901
 *
1902
 * This implements default behavior when e.g. an option is
1903
 * unsigned but the user specifies a negative argument; etc.
1904
 */
1905
template <class T, bool is_numeric, bool is_integer>
1906
struct OptionHandler {
1907
  static T handle(const std::string& option, const std::string& flag, const std::string& optionarg);
1908
};/* struct OptionHandler<> */
1909
1910
/** Variant for integral C++ types */
1911
template <class T>
1912
struct OptionHandler<T, true, true> {
1913
134
  static bool stringToInt(T& t, const std::string& str) {
1914
268
    std::istringstream ss(str);
1915
134
    ss >> t;
1916
    char tmp;
1917
268
    return !(ss.fail() || ss.get(tmp));
1918
  }
1919
1920
101
  static bool containsMinus(const std::string& str) {
1921
101
    return str.find('-') != std::string::npos;
1922
  }
1923
1924
134
  static T handle(const std::string& option, const std::string& flag, const std::string& optionarg) {
1925
    try {
1926
      T i;
1927
134
      bool success = stringToInt(i, optionarg);
1928
1929
134
      if(!success){
1930
        throw OptionException(flag + ": failed to parse "+ optionarg +
1931
                              " as an integer of the appropriate type.");
1932
      }
1933
1934
      // Depending in the platform unsigned numbers with '-' signs may parse.
1935
      // Reject these by looking for any minus if it is not signed.
1936
101
      if( (! std::numeric_limits<T>::is_signed) && containsMinus(optionarg) ) {
1937
        // unsigned type but user gave negative argument
1938
        throw OptionException(flag + " requires a nonnegative argument");
1939
134
      } else if(i < std::numeric_limits<T>::min()) {
1940
        // negative overflow for type
1941
        std::stringstream ss;
1942
        ss << flag << " requires an argument >= "
1943
           << std::numeric_limits<T>::min();
1944
        throw OptionException(ss.str());
1945
134
      } else if(i > std::numeric_limits<T>::max()) {
1946
        // positive overflow for type
1947
        std::stringstream ss;
1948
        ss << flag << " requires an argument <= "
1949
           << std::numeric_limits<T>::max();
1950
        throw OptionException(ss.str());
1951
      }
1952
1953
134
      return i;
1954
1955
      // if(std::numeric_limits<T>::is_signed) {
1956
      //   return T(i.getLong());
1957
      // } else {
1958
      //   return T(i.getUnsignedLong());
1959
      // }
1960
    } catch(std::invalid_argument&) {
1961
      // user gave something other than an integer
1962
      throw OptionException(flag + " requires an integer argument");
1963
    }
1964
  }
1965
};/* struct OptionHandler<T, true, true> */
1966
1967
/** Variant for numeric but non-integral C++ types */
1968
template <class T>
1969
struct OptionHandler<T, true, false> {
1970
  static T handle(const std::string& option, const std::string& flag, const std::string& optionarg) {
1971
    std::stringstream inss(optionarg);
1972
    long double r;
1973
    inss >> r;
1974
    if(! inss.eof()) {
1975
      // we didn't consume the whole string (junk at end)
1976
      throw OptionException(flag + " requires a numeric argument");
1977
    }
1978
1979
    if(! std::numeric_limits<T>::is_signed && r < 0.0) {
1980
      // unsigned type but user gave negative value
1981
      throw OptionException(flag + " requires a nonnegative argument");
1982
    } else if(r < -std::numeric_limits<T>::max()) {
1983
      // negative overflow for type
1984
      std::stringstream ss;
1985
      ss << flag << " requires an argument >= "
1986
         << -std::numeric_limits<T>::max();
1987
      throw OptionException(ss.str());
1988
    } else if(r > std::numeric_limits<T>::max()) {
1989
      // positive overflow for type
1990
      std::stringstream ss;
1991
      ss << flag << " requires an argument <= "
1992
         << std::numeric_limits<T>::max();
1993
      throw OptionException(ss.str());
1994
    }
1995
1996
    return T(r);
1997
  }
1998
};/* struct OptionHandler<T, true, false> */
1999
2000
/** Variant for non-numeric C++ types */
2001
template <class T>
2002
struct OptionHandler<T, false, false> {
2003
  static T handle(const std::string& option, const std::string& flag, const std::string& optionarg) {
2004
    T::unsupported_handleOption_call___please_write_me;
2005
    // The above line causes a compiler error if this version of the template
2006
    // is ever instantiated (meaning that a specialization is missing).  So
2007
    // don't worry about the segfault in the next line, the "return" is only
2008
    // there to keep the compiler from giving additional, distracting errors
2009
    // and warnings.
2010
    return *(T*)0;
2011
  }
2012
};/* struct OptionHandler<T, false, false> */
2013
2014
/** Specialization for ManagedErr */
2015
template <>
2016
struct OptionHandler<ManagedErr, false, false>
2017
{
2018
  static ManagedErr handle(const std::string& option,
2019
                           const std::string& flag,
2020
                           const std::string& optionarg)
2021
  {
2022
    ManagedErr res;
2023
    res.open(optionarg);
2024
    return res;
2025
  }
2026
};
2027
/** Specialization for ManagedIn */
2028
template <>
2029
struct OptionHandler<ManagedIn, false, false>
2030
{
2031
  static ManagedIn handle(const std::string& option,
2032
                          const std::string& flag,
2033
                          const std::string& optionarg)
2034
  {
2035
    ManagedIn res;
2036
    res.open(optionarg);
2037
    return res;
2038
  }
2039
};
2040
/** Specialization for ManagedOut */
2041
template <>
2042
struct OptionHandler<ManagedOut, false, false>
2043
{
2044
  static ManagedOut handle(const std::string& option,
2045
                           const std::string& flag,
2046
                           const std::string& optionarg)
2047
  {
2048
    ManagedOut res;
2049
    res.open(optionarg);
2050
    return res;
2051
  }
2052
};
2053
2054
/** Handle an option of type T in the default way. */
2055
template <class T>
2056
134
T handleOption(const std::string& option, const std::string& flag, const std::string& optionarg) {
2057
134
  return OptionHandler<T, std::numeric_limits<T>::is_specialized, std::numeric_limits<T>::is_integer>::handle(option, flag, optionarg);
2058
}
2059
2060
/** Handle an option of type std::string in the default way. */
2061
template <>
2062
12
std::string handleOption<std::string>(const std::string& option, const std::string& flag, const std::string& optionarg) {
2063
12
  return optionarg;
2064
}
2065
2066
// clang-format off
2067
2068
void assign_arith_maxApproxDepth(Options& opts, const std::string& option, const std::string& optionarg) {
2069
  auto value = handleOption<int64_t>("approx-branch-depth", option, optionarg);
2070
2071
  opts.arith.maxApproxDepth = value;
2072
  opts.arith.maxApproxDepthWasSetByUser = true;
2073
  Trace("options") << "user assigned option maxApproxDepth = " << value << std::endl;
2074
}
2075
2076
4
void assign_arith_brabTest(Options& opts, const std::string& option, bool value) {
2077
2078
4
  opts.arith.brabTest = value;
2079
4
  opts.arith.brabTestWasSetByUser = true;
2080
4
  Trace("options") << "user assigned option brabTest = " << value << std::endl;
2081
4
}
2082
2083
void assign_arith_arithCongMan(Options& opts, const std::string& option, bool value) {
2084
2085
  opts.arith.arithCongMan = value;
2086
  opts.arith.arithCongManWasSetByUser = true;
2087
  Trace("options") << "user assigned option arithCongMan = " << value << std::endl;
2088
}
2089
2090
6
void assign_arith_arithEqSolver(Options& opts, const std::string& option, bool value) {
2091
2092
6
  opts.arith.arithEqSolver = value;
2093
6
  opts.arith.arithEqSolverWasSetByUser = true;
2094
6
  Trace("options") << "user assigned option arithEqSolver = " << value << std::endl;
2095
6
}
2096
2097
3
void assign_arith_arithNoPartialFun(Options& opts, const std::string& option, bool value) {
2098
2099
3
  opts.arith.arithNoPartialFun = value;
2100
3
  opts.arith.arithNoPartialFunWasSetByUser = true;
2101
3
  Trace("options") << "user assigned option arithNoPartialFun = " << value << std::endl;
2102
3
}
2103
2104
void assign_arith_arithPropAsLemmaLength(Options& opts, const std::string& option, const std::string& optionarg) {
2105
  auto value = handleOption<uint64_t>("arith-prop-clauses", option, optionarg);
2106
2107
  opts.arith.arithPropAsLemmaLength = value;
2108
  opts.arith.arithPropAsLemmaLengthWasSetByUser = true;
2109
  Trace("options") << "user assigned option arithPropAsLemmaLength = " << value << std::endl;
2110
}
2111
2112
void assign_arith_arithPropagationMode(Options& opts, const std::string& option, const std::string& optionarg) {
2113
  auto value = stringToArithPropagationMode(optionarg);
2114
2115
  opts.arith.arithPropagationMode = value;
2116
  opts.arith.arithPropagationModeWasSetByUser = true;
2117
  Trace("options") << "user assigned option arithPropagationMode = " << value << std::endl;
2118
}
2119
2120
9
void assign_arith_arithRewriteEq(Options& opts, const std::string& option, bool value) {
2121
2122
9
  opts.arith.arithRewriteEq = value;
2123
9
  opts.arith.arithRewriteEqWasSetByUser = true;
2124
9
  Trace("options") << "user assigned option arithRewriteEq = " << value << std::endl;
2125
9
}
2126
2127
void assign_arith_collectPivots(Options& opts, const std::string& option, bool value) {
2128
2129
  opts.arith.collectPivots = value;
2130
  opts.arith.collectPivotsWasSetByUser = true;
2131
  Trace("options") << "user assigned option collectPivots = " << value << std::endl;
2132
}
2133
2134
void assign_arith_doCutAllBounded(Options& opts, const std::string& option, bool value) {
2135
2136
  opts.arith.doCutAllBounded = value;
2137
  opts.arith.doCutAllBoundedWasSetByUser = true;
2138
  Trace("options") << "user assigned option doCutAllBounded = " << value << std::endl;
2139
}
2140
2141
void assign_arith_exportDioDecompositions(Options& opts, const std::string& option, bool value) {
2142
2143
  opts.arith.exportDioDecompositions = value;
2144
  opts.arith.exportDioDecompositionsWasSetByUser = true;
2145
  Trace("options") << "user assigned option exportDioDecompositions = " << value << std::endl;
2146
}
2147
2148
void assign_arith_dioRepeat(Options& opts, const std::string& option, bool value) {
2149
2150
  opts.arith.dioRepeat = value;
2151
  opts.arith.dioRepeatWasSetByUser = true;
2152
  Trace("options") << "user assigned option dioRepeat = " << value << std::endl;
2153
}
2154
2155
void assign_arith_arithDioSolver(Options& opts, const std::string& option, bool value) {
2156
2157
  opts.arith.arithDioSolver = value;
2158
  opts.arith.arithDioSolverWasSetByUser = true;
2159
  Trace("options") << "user assigned option arithDioSolver = " << value << std::endl;
2160
}
2161
2162
void assign_arith_dioSolverTurns(Options& opts, const std::string& option, const std::string& optionarg) {
2163
  auto value = handleOption<int64_t>("dio-turns", option, optionarg);
2164
2165
  opts.arith.dioSolverTurns = value;
2166
  opts.arith.dioSolverTurnsWasSetByUser = true;
2167
  Trace("options") << "user assigned option dioSolverTurns = " << value << std::endl;
2168
}
2169
2170
void assign_arith_arithErrorSelectionRule(Options& opts, const std::string& option, const std::string& optionarg) {
2171
  auto value = stringToErrorSelectionRule(optionarg);
2172
2173
  opts.arith.arithErrorSelectionRule = value;
2174
  opts.arith.arithErrorSelectionRuleWasSetByUser = true;
2175
  Trace("options") << "user assigned option arithErrorSelectionRule = " << value << std::endl;
2176
}
2177
2178
void assign_arith_havePenalties(Options& opts, const std::string& option, bool value) {
2179
2180
  opts.arith.havePenalties = value;
2181
  opts.arith.havePenaltiesWasSetByUser = true;
2182
  Trace("options") << "user assigned option havePenalties = " << value << std::endl;
2183
}
2184
2185
void assign_arith_arithHeuristicPivots(Options& opts, const std::string& option, const std::string& optionarg) {
2186
  auto value = handleOption<int64_t>("heuristic-pivots", option, optionarg);
2187
2188
  opts.arith.arithHeuristicPivots = value;
2189
  opts.arith.arithHeuristicPivotsWasSetByUser = true;
2190
  Trace("options") << "user assigned option arithHeuristicPivots = " << value << std::endl;
2191
}
2192
2193
void assign_arith_replayFailureLemma(Options& opts, const std::string& option, bool value) {
2194
2195
  opts.arith.replayFailureLemma = value;
2196
  opts.arith.replayFailureLemmaWasSetByUser = true;
2197
  Trace("options") << "user assigned option replayFailureLemma = " << value << std::endl;
2198
}
2199
2200
void assign_arith_maxCutsInContext(Options& opts, const std::string& option, const std::string& optionarg) {
2201
  auto value = handleOption<uint64_t>("maxCutsInContext", option, optionarg);
2202
2203
  opts.arith.maxCutsInContext = value;
2204
  opts.arith.maxCutsInContextWasSetByUser = true;
2205
  Trace("options") << "user assigned option maxCutsInContext = " << value << std::endl;
2206
}
2207
2208
8
void assign_arith_arithMLTrick(Options& opts, const std::string& option, bool value) {
2209
2210
8
  opts.arith.arithMLTrick = value;
2211
8
  opts.arith.arithMLTrickWasSetByUser = true;
2212
8
  Trace("options") << "user assigned option arithMLTrick = " << value << std::endl;
2213
8
}
2214
2215
void assign_arith_arithMLTrickSubstitutions(Options& opts, const std::string& option, const std::string& optionarg) {
2216
  auto value = handleOption<uint64_t>("miplib-trick-subs", option, optionarg);
2217
2218
  opts.arith.arithMLTrickSubstitutions = value;
2219
  opts.arith.arithMLTrickSubstitutionsWasSetByUser = true;
2220
  Trace("options") << "user assigned option arithMLTrickSubstitutions = " << value << std::endl;
2221
}
2222
2223
8
void assign_arith_newProp(Options& opts, const std::string& option, bool value) {
2224
2225
8
  opts.arith.newProp = value;
2226
8
  opts.arith.newPropWasSetByUser = true;
2227
8
  Trace("options") << "user assigned option newProp = " << value << std::endl;
2228
8
}
2229
2230
5
void assign_arith_nlCad(Options& opts, const std::string& option, bool value) {
2231
2232
5
  opts.arith.nlCad = value;
2233
5
  opts.arith.nlCadWasSetByUser = true;
2234
5
  Trace("options") << "user assigned option nlCad = " << value << std::endl;
2235
5
}
2236
2237
void assign_arith_nlCadUseInitial(Options& opts, const std::string& option, bool value) {
2238
2239
  opts.arith.nlCadUseInitial = value;
2240
  opts.arith.nlCadUseInitialWasSetByUser = true;
2241
  Trace("options") << "user assigned option nlCadUseInitial = " << value << std::endl;
2242
}
2243
2244
void assign_arith_nlCadLifting(Options& opts, const std::string& option, const std::string& optionarg) {
2245
  auto value = stringToNlCadLiftingMode(optionarg);
2246
2247
  opts.arith.nlCadLifting = value;
2248
  opts.arith.nlCadLiftingWasSetByUser = true;
2249
  Trace("options") << "user assigned option nlCadLifting = " << value << std::endl;
2250
}
2251
2252
void assign_arith_nlCadProjection(Options& opts, const std::string& option, const std::string& optionarg) {
2253
  auto value = stringToNlCadProjectionMode(optionarg);
2254
2255
  opts.arith.nlCadProjection = value;
2256
  opts.arith.nlCadProjectionWasSetByUser = true;
2257
  Trace("options") << "user assigned option nlCadProjection = " << value << std::endl;
2258
}
2259
2260
void assign_arith_nlExtEntailConflicts(Options& opts, const std::string& option, bool value) {
2261
2262
  opts.arith.nlExtEntailConflicts = value;
2263
  opts.arith.nlExtEntailConflictsWasSetByUser = true;
2264
  Trace("options") << "user assigned option nlExtEntailConflicts = " << value << std::endl;
2265
}
2266
2267
void assign_arith_nlExtFactor(Options& opts, const std::string& option, bool value) {
2268
2269
  opts.arith.nlExtFactor = value;
2270
  opts.arith.nlExtFactorWasSetByUser = true;
2271
  Trace("options") << "user assigned option nlExtFactor = " << value << std::endl;
2272
}
2273
2274
2
void assign_arith_nlExtIncPrecision(Options& opts, const std::string& option, bool value) {
2275
2276
2
  opts.arith.nlExtIncPrecision = value;
2277
2
  opts.arith.nlExtIncPrecisionWasSetByUser = true;
2278
2
  Trace("options") << "user assigned option nlExtIncPrecision = " << value << std::endl;
2279
2
}
2280
2281
4
void assign_arith_nlExtPurify(Options& opts, const std::string& option, bool value) {
2282
2283
4
  opts.arith.nlExtPurify = value;
2284
4
  opts.arith.nlExtPurifyWasSetByUser = true;
2285
4
  Trace("options") << "user assigned option nlExtPurify = " << value << std::endl;
2286
4
}
2287
2288
void assign_arith_nlExtResBound(Options& opts, const std::string& option, bool value) {
2289
2290
  opts.arith.nlExtResBound = value;
2291
  opts.arith.nlExtResBoundWasSetByUser = true;
2292
  Trace("options") << "user assigned option nlExtResBound = " << value << std::endl;
2293
}
2294
2295
void assign_arith_nlExtRewrites(Options& opts, const std::string& option, bool value) {
2296
2297
  opts.arith.nlExtRewrites = value;
2298
  opts.arith.nlExtRewritesWasSetByUser = true;
2299
  Trace("options") << "user assigned option nlExtRewrites = " << value << std::endl;
2300
}
2301
2302
void assign_arith_nlExtSplitZero(Options& opts, const std::string& option, bool value) {
2303
2304
  opts.arith.nlExtSplitZero = value;
2305
  opts.arith.nlExtSplitZeroWasSetByUser = true;
2306
  Trace("options") << "user assigned option nlExtSplitZero = " << value << std::endl;
2307
}
2308
2309
void assign_arith_nlExtTfTaylorDegree(Options& opts, const std::string& option, const std::string& optionarg) {
2310
  auto value = handleOption<int64_t>("nl-ext-tf-taylor-deg", option, optionarg);
2311
2312
  opts.arith.nlExtTfTaylorDegree = value;
2313
  opts.arith.nlExtTfTaylorDegreeWasSetByUser = true;
2314
  Trace("options") << "user assigned option nlExtTfTaylorDegree = " << value << std::endl;
2315
}
2316
2317
41
void assign_arith_nlExtTfTangentPlanes(Options& opts, const std::string& option, bool value) {
2318
2319
41
  opts.arith.nlExtTfTangentPlanes = value;
2320
41
  opts.arith.nlExtTfTangentPlanesWasSetByUser = true;
2321
41
  Trace("options") << "user assigned option nlExtTfTangentPlanes = " << value << std::endl;
2322
41
}
2323
2324
42
void assign_arith_nlExtTangentPlanes(Options& opts, const std::string& option, bool value) {
2325
2326
42
  opts.arith.nlExtTangentPlanes = value;
2327
42
  opts.arith.nlExtTangentPlanesWasSetByUser = true;
2328
42
  Trace("options") << "user assigned option nlExtTangentPlanes = " << value << std::endl;
2329
42
}
2330
2331
void assign_arith_nlExtTangentPlanesInterleave(Options& opts, const std::string& option, bool value) {
2332
2333
  opts.arith.nlExtTangentPlanesInterleave = value;
2334
  opts.arith.nlExtTangentPlanesInterleaveWasSetByUser = true;
2335
  Trace("options") << "user assigned option nlExtTangentPlanesInterleave = " << value << std::endl;
2336
}
2337
2338
125
void assign_arith_nlExt(Options& opts, const std::string& option, const std::string& optionarg) {
2339
125
  auto value = stringToNlExtMode(optionarg);
2340
2341
125
  opts.arith.nlExt = value;
2342
125
  opts.arith.nlExtWasSetByUser = true;
2343
125
  Trace("options") << "user assigned option nlExt = " << value << std::endl;
2344
125
}
2345
2346
2
void assign_arith_nlICP(Options& opts, const std::string& option, bool value) {
2347
2348
2
  opts.arith.nlICP = value;
2349
2
  opts.arith.nlICPWasSetByUser = true;
2350
2
  Trace("options") << "user assigned option nlICP = " << value << std::endl;
2351
2
}
2352
2353
10
void assign_arith_nlRlvMode(Options& opts, const std::string& option, const std::string& optionarg) {
2354
10
  auto value = stringToNlRlvMode(optionarg);
2355
2356
10
  opts.arith.nlRlvMode = value;
2357
10
  opts.arith.nlRlvModeWasSetByUser = true;
2358
10
  Trace("options") << "user assigned option nlRlvMode = " << value << std::endl;
2359
10
}
2360
2361
2
void assign_arith_pbRewrites(Options& opts, const std::string& option, bool value) {
2362
2363
2
  opts.arith.pbRewrites = value;
2364
2
  opts.arith.pbRewritesWasSetByUser = true;
2365
2
  Trace("options") << "user assigned option pbRewrites = " << value << std::endl;
2366
2
}
2367
2368
void assign_arith_arithPivotThreshold(Options& opts, const std::string& option, const std::string& optionarg) {
2369
  auto value = handleOption<uint64_t>("pivot-threshold", option, optionarg);
2370
2371
  opts.arith.arithPivotThreshold = value;
2372
  opts.arith.arithPivotThresholdWasSetByUser = true;
2373
  Trace("options") << "user assigned option arithPivotThreshold = " << value << std::endl;
2374
}
2375
2376
void assign_arith_ppAssertMaxSubSize(Options& opts, const std::string& option, const std::string& optionarg) {
2377
  auto value = handleOption<uint64_t>("pp-assert-max-sub-size", option, optionarg);
2378
2379
  opts.arith.ppAssertMaxSubSize = value;
2380
  opts.arith.ppAssertMaxSubSizeWasSetByUser = true;
2381
  Trace("options") << "user assigned option ppAssertMaxSubSize = " << value << std::endl;
2382
}
2383
2384
void assign_arith_arithPropagateMaxLength(Options& opts, const std::string& option, const std::string& optionarg) {
2385
  auto value = handleOption<uint64_t>("prop-row-length", option, optionarg);
2386
2387
  opts.arith.arithPropagateMaxLength = value;
2388
  opts.arith.arithPropagateMaxLengthWasSetByUser = true;
2389
  Trace("options") << "user assigned option arithPropagateMaxLength = " << value << std::endl;
2390
}
2391
2392
void assign_arith_replayEarlyCloseDepths(Options& opts, const std::string& option, const std::string& optionarg) {
2393
  auto value = handleOption<int64_t>("replay-early-close-depth", option, optionarg);
2394
2395
  opts.arith.replayEarlyCloseDepths = value;
2396
  opts.arith.replayEarlyCloseDepthsWasSetByUser = true;
2397
  Trace("options") << "user assigned option replayEarlyCloseDepths = " << value << std::endl;
2398
}
2399
2400
void assign_arith_replayFailurePenalty(Options& opts, const std::string& option, const std::string& optionarg) {
2401
  auto value = handleOption<int64_t>("replay-failure-penalty", option, optionarg);
2402
2403
  opts.arith.replayFailurePenalty = value;
2404
  opts.arith.replayFailurePenaltyWasSetByUser = true;
2405
  Trace("options") << "user assigned option replayFailurePenalty = " << value << std::endl;
2406
}
2407
2408
void assign_arith_lemmaRejectCutSize(Options& opts, const std::string& option, const std::string& optionarg) {
2409
  auto value = handleOption<uint64_t>("replay-lemma-reject-cut", option, optionarg);
2410
2411
  opts.arith.lemmaRejectCutSize = value;
2412
  opts.arith.lemmaRejectCutSizeWasSetByUser = true;
2413
  Trace("options") << "user assigned option lemmaRejectCutSize = " << value << std::endl;
2414
}
2415
2416
void assign_arith_replayNumericFailurePenalty(Options& opts, const std::string& option, const std::string& optionarg) {
2417
  auto value = handleOption<int64_t>("replay-num-err-penalty", option, optionarg);
2418
2419
  opts.arith.replayNumericFailurePenalty = value;
2420
  opts.arith.replayNumericFailurePenaltyWasSetByUser = true;
2421
  Trace("options") << "user assigned option replayNumericFailurePenalty = " << value << std::endl;
2422
}
2423
2424
void assign_arith_replayRejectCutSize(Options& opts, const std::string& option, const std::string& optionarg) {
2425
  auto value = handleOption<uint64_t>("replay-reject-cut", option, optionarg);
2426
2427
  opts.arith.replayRejectCutSize = value;
2428
  opts.arith.replayRejectCutSizeWasSetByUser = true;
2429
  Trace("options") << "user assigned option replayRejectCutSize = " << value << std::endl;
2430
}
2431
2432
void assign_arith_soiApproxMajorFailurePen(Options& opts, const std::string& option, const std::string& optionarg) {
2433
  auto value = handleOption<int64_t>("replay-soi-major-threshold-pen", option, optionarg);
2434
2435
  opts.arith.soiApproxMajorFailurePen = value;
2436
  opts.arith.soiApproxMajorFailurePenWasSetByUser = true;
2437
  Trace("options") << "user assigned option soiApproxMajorFailurePen = " << value << std::endl;
2438
}
2439
2440
void assign_arith_soiApproxMajorFailure(Options& opts, const std::string& option, const std::string& optionarg) {
2441
  auto value = handleOption<double>("replay-soi-major-threshold", option, optionarg);
2442
2443
  opts.arith.soiApproxMajorFailure = value;
2444
  opts.arith.soiApproxMajorFailureWasSetByUser = true;
2445
  Trace("options") << "user assigned option soiApproxMajorFailure = " << value << std::endl;
2446
}
2447
2448
void assign_arith_soiApproxMinorFailurePen(Options& opts, const std::string& option, const std::string& optionarg) {
2449
  auto value = handleOption<int64_t>("replay-soi-minor-threshold-pen", option, optionarg);
2450
2451
  opts.arith.soiApproxMinorFailurePen = value;
2452
  opts.arith.soiApproxMinorFailurePenWasSetByUser = true;
2453
  Trace("options") << "user assigned option soiApproxMinorFailurePen = " << value << std::endl;
2454
}
2455
2456
void assign_arith_soiApproxMinorFailure(Options& opts, const std::string& option, const std::string& optionarg) {
2457
  auto value = handleOption<double>("replay-soi-minor-threshold", option, optionarg);
2458
2459
  opts.arith.soiApproxMinorFailure = value;
2460
  opts.arith.soiApproxMinorFailureWasSetByUser = true;
2461
  Trace("options") << "user assigned option soiApproxMinorFailure = " << value << std::endl;
2462
}
2463
2464
void assign_arith_restrictedPivots(Options& opts, const std::string& option, bool value) {
2465
2466
  opts.arith.restrictedPivots = value;
2467
  opts.arith.restrictedPivotsWasSetByUser = true;
2468
  Trace("options") << "user assigned option restrictedPivots = " << value << std::endl;
2469
}
2470
2471
void assign_arith_revertArithModels(Options& opts, const std::string& option, bool value) {
2472
2473
  opts.arith.revertArithModels = value;
2474
  opts.arith.revertArithModelsWasSetByUser = true;
2475
  Trace("options") << "user assigned option revertArithModels = " << value << std::endl;
2476
}
2477
2478
void assign_arith_rrTurns(Options& opts, const std::string& option, const std::string& optionarg) {
2479
  auto value = handleOption<int64_t>("rr-turns", option, optionarg);
2480
2481
  opts.arith.rrTurns = value;
2482
  opts.arith.rrTurnsWasSetByUser = true;
2483
  Trace("options") << "user assigned option rrTurns = " << value << std::endl;
2484
}
2485
2486
void assign_arith_trySolveIntStandardEffort(Options& opts, const std::string& option, bool value) {
2487
2488
  opts.arith.trySolveIntStandardEffort = value;
2489
  opts.arith.trySolveIntStandardEffortWasSetByUser = true;
2490
  Trace("options") << "user assigned option trySolveIntStandardEffort = " << value << std::endl;
2491
}
2492
2493
void assign_arith_arithSimplexCheckPeriod(Options& opts, const std::string& option, const std::string& optionarg) {
2494
  auto value = handleOption<uint64_t>("simplex-check-period", option, optionarg);
2495
2496
  opts.arith.arithSimplexCheckPeriod = value;
2497
  opts.arith.arithSimplexCheckPeriodWasSetByUser = true;
2498
  Trace("options") << "user assigned option arithSimplexCheckPeriod = " << value << std::endl;
2499
}
2500
2501
void assign_arith_soiQuickExplain(Options& opts, const std::string& option, bool value) {
2502
2503
  opts.arith.soiQuickExplain = value;
2504
  opts.arith.soiQuickExplainWasSetByUser = true;
2505
  Trace("options") << "user assigned option soiQuickExplain = " << value << std::endl;
2506
}
2507
2508
void assign_arith_arithStandardCheckVarOrderPivots(Options& opts, const std::string& option, const std::string& optionarg) {
2509
  auto value = handleOption<int64_t>("standard-effort-variable-order-pivots", option, optionarg);
2510
2511
  opts.arith.arithStandardCheckVarOrderPivots = value;
2512
  opts.arith.arithStandardCheckVarOrderPivotsWasSetByUser = true;
2513
  Trace("options") << "user assigned option arithStandardCheckVarOrderPivots = " << value << std::endl;
2514
}
2515
2516
void assign_arith_arithUnateLemmaMode(Options& opts, const std::string& option, const std::string& optionarg) {
2517
  auto value = stringToArithUnateLemmaMode(optionarg);
2518
2519
  opts.arith.arithUnateLemmaMode = value;
2520
  opts.arith.arithUnateLemmaModeWasSetByUser = true;
2521
  Trace("options") << "user assigned option arithUnateLemmaMode = " << value << std::endl;
2522
}
2523
2524
void assign_arith_useApprox(Options& opts, const std::string& option, bool value) {
2525
2526
  opts.arith.useApprox = value;
2527
  opts.arith.useApproxWasSetByUser = true;
2528
  Trace("options") << "user assigned option useApprox = " << value << std::endl;
2529
}
2530
2531
void assign_arith_useFC(Options& opts, const std::string& option, bool value) {
2532
2533
  opts.arith.useFC = value;
2534
  opts.arith.useFCWasSetByUser = true;
2535
  Trace("options") << "user assigned option useFC = " << value << std::endl;
2536
}
2537
2538
void assign_arith_useSOI(Options& opts, const std::string& option, bool value) {
2539
2540
  opts.arith.useSOI = value;
2541
  opts.arith.useSOIWasSetByUser = true;
2542
  Trace("options") << "user assigned option useSOI = " << value << std::endl;
2543
}
2544
2545
void assign_arrays_arraysConfig(Options& opts, const std::string& option, const std::string& optionarg) {
2546
  auto value = handleOption<int64_t>("arrays-config", option, optionarg);
2547
2548
  opts.arrays.arraysConfig = value;
2549
  opts.arrays.arraysConfigWasSetByUser = true;
2550
  Trace("options") << "user assigned option arraysConfig = " << value << std::endl;
2551
}
2552
2553
void assign_arrays_arraysEagerIndexSplitting(Options& opts, const std::string& option, bool value) {
2554
2555
  opts.arrays.arraysEagerIndexSplitting = value;
2556
  opts.arrays.arraysEagerIndexSplittingWasSetByUser = true;
2557
  Trace("options") << "user assigned option arraysEagerIndexSplitting = " << value << std::endl;
2558
}
2559
2560
void assign_arrays_arraysEagerLemmas(Options& opts, const std::string& option, bool value) {
2561
2562
  opts.arrays.arraysEagerLemmas = value;
2563
  opts.arrays.arraysEagerLemmasWasSetByUser = true;
2564
  Trace("options") << "user assigned option arraysEagerLemmas = " << value << std::endl;
2565
}
2566
2567
10
void assign_arrays_arraysExp(Options& opts, const std::string& option, bool value) {
2568
2569
10
  opts.arrays.arraysExp = value;
2570
10
  opts.arrays.arraysExpWasSetByUser = true;
2571
10
  Trace("options") << "user assigned option arraysExp = " << value << std::endl;
2572
10
}
2573
2574
void assign_arrays_arraysModelBased(Options& opts, const std::string& option, bool value) {
2575
2576
  opts.arrays.arraysModelBased = value;
2577
  opts.arrays.arraysModelBasedWasSetByUser = true;
2578
  Trace("options") << "user assigned option arraysModelBased = " << value << std::endl;
2579
}
2580
2581
void assign_arrays_arraysOptimizeLinear(Options& opts, const std::string& option, bool value) {
2582
2583
  opts.arrays.arraysOptimizeLinear = value;
2584
  opts.arrays.arraysOptimizeLinearWasSetByUser = true;
2585
  Trace("options") << "user assigned option arraysOptimizeLinear = " << value << std::endl;
2586
}
2587
2588
void assign_arrays_arraysPropagate(Options& opts, const std::string& option, const std::string& optionarg) {
2589
  auto value = handleOption<int64_t>("arrays-prop", option, optionarg);
2590
2591
  opts.arrays.arraysPropagate = value;
2592
  opts.arrays.arraysPropagateWasSetByUser = true;
2593
  Trace("options") << "user assigned option arraysPropagate = " << value << std::endl;
2594
}
2595
2596
void assign_arrays_arraysReduceSharing(Options& opts, const std::string& option, bool value) {
2597
2598
  opts.arrays.arraysReduceSharing = value;
2599
  opts.arrays.arraysReduceSharingWasSetByUser = true;
2600
  Trace("options") << "user assigned option arraysReduceSharing = " << value << std::endl;
2601
}
2602
2603
void assign_arrays_arraysWeakEquivalence(Options& opts, const std::string& option, bool value) {
2604
2605
  opts.arrays.arraysWeakEquivalence = value;
2606
  opts.arrays.arraysWeakEquivalenceWasSetByUser = true;
2607
  Trace("options") << "user assigned option arraysWeakEquivalence = " << value << std::endl;
2608
}
2609
2610
void assign_base_err(Options& opts, const std::string& option, const std::string& optionarg) {
2611
  auto value = handleOption<ManagedErr>("err", option, optionarg);
2612
  opts.handler().setErrStream("err", option, value);
2613
  opts.base.err = value;
2614
  opts.base.errWasSetByUser = true;
2615
  Trace("options") << "user assigned option err = " << value << std::endl;
2616
}
2617
2618
void assign_base_in(Options& opts, const std::string& option, const std::string& optionarg) {
2619
  auto value = handleOption<ManagedIn>("in", option, optionarg);
2620
  opts.handler().setInStream("in", option, value);
2621
  opts.base.in = value;
2622
  opts.base.inWasSetByUser = true;
2623
  Trace("options") << "user assigned option in = " << value << std::endl;
2624
}
2625
2626
7285
void assign_base_incrementalSolving(Options& opts, const std::string& option, bool value) {
2627
2628
7285
  opts.base.incrementalSolving = value;
2629
7285
  opts.base.incrementalSolvingWasSetByUser = true;
2630
7285
  Trace("options") << "user assigned option incrementalSolving = " << value << std::endl;
2631
7285
}
2632
2633
525
void assign_base_inputLanguage(Options& opts, const std::string& option, const std::string& optionarg) {
2634
525
  auto value = opts.handler().stringToInputLanguage("lang", option, optionarg);
2635
2636
525
  opts.base.inputLanguage = value;
2637
525
  opts.base.inputLanguageWasSetByUser = true;
2638
525
  Trace("options") << "user assigned option inputLanguage = " << value << std::endl;
2639
525
}
2640
2641
void assign_base_languageHelp(Options& opts, const std::string& option, bool value) {
2642
2643
  opts.base.languageHelp = value;
2644
  opts.base.languageHelpWasSetByUser = true;
2645
  Trace("options") << "user assigned option languageHelp = " << value << std::endl;
2646
}
2647
2648
void assign_base_out(Options& opts, const std::string& option, const std::string& optionarg) {
2649
  auto value = handleOption<ManagedOut>("out", option, optionarg);
2650
  opts.handler().setOutStream("out", option, value);
2651
  opts.base.out = value;
2652
  opts.base.outWasSetByUser = true;
2653
  Trace("options") << "user assigned option out = " << value << std::endl;
2654
}
2655
2656
90
void assign_base_outputLanguage(Options& opts, const std::string& option, const std::string& optionarg) {
2657
90
  auto value = opts.handler().stringToOutputLanguage("output-lang", option, optionarg);
2658
2659
90
  opts.base.outputLanguage = value;
2660
90
  opts.base.outputLanguageWasSetByUser = true;
2661
90
  Trace("options") << "user assigned option outputLanguage = " << value << std::endl;
2662
90
}
2663
2664
16
void assign_base_parseOnly(Options& opts, const std::string& option, bool value) {
2665
2666
16
  opts.base.parseOnly = value;
2667
16
  opts.base.parseOnlyWasSetByUser = true;
2668
16
  Trace("options") << "user assigned option parseOnly = " << value << std::endl;
2669
16
}
2670
2671
3
void assign_base_preprocessOnly(Options& opts, const std::string& option, bool value) {
2672
2673
3
  opts.base.preprocessOnly = value;
2674
3
  opts.base.preprocessOnlyWasSetByUser = true;
2675
3
  Trace("options") << "user assigned option preprocessOnly = " << value << std::endl;
2676
3
}
2677
2678
30
void assign_base_printSuccess(Options& opts, const std::string& option, bool value) {
2679
30
  opts.handler().setPrintSuccess("print-success", option, value);
2680
30
  opts.base.printSuccess = value;
2681
30
  opts.base.printSuccessWasSetByUser = true;
2682
30
  Trace("options") << "user assigned option printSuccess = " << value << std::endl;
2683
30
}
2684
2685
void assign_base_perCallResourceLimit(Options& opts, const std::string& option, const std::string& optionarg) {
2686
  auto value = handleOption<uint64_t>("rlimit-per", option, optionarg);
2687
2688
  opts.base.perCallResourceLimit = value;
2689
  opts.base.perCallResourceLimitWasSetByUser = true;
2690
  Trace("options") << "user assigned option perCallResourceLimit = " << value << std::endl;
2691
}
2692
2693
void assign_base_cumulativeResourceLimit(Options& opts, const std::string& option, const std::string& optionarg) {
2694
  auto value = handleOption<uint64_t>("rlimit", option, optionarg);
2695
2696
  opts.base.cumulativeResourceLimit = value;
2697
  opts.base.cumulativeResourceLimitWasSetByUser = true;
2698
  Trace("options") << "user assigned option cumulativeResourceLimit = " << value << std::endl;
2699
}
2700
2701
2
void assign_base_statistics(Options& opts, const std::string& option, bool value) {
2702
2
  opts.handler().setStats("stats", option, value);
2703
2
  opts.base.statistics = value;
2704
2
  opts.base.statisticsWasSetByUser = true;
2705
2
  Trace("options") << "user assigned option statistics = " << value << std::endl;
2706
2
}
2707
2708
1
void assign_base_statisticsAll(Options& opts, const std::string& option, bool value) {
2709
1
  opts.handler().setStats("stats-all", option, value);
2710
1
  opts.base.statisticsAll = value;
2711
1
  opts.base.statisticsAllWasSetByUser = true;
2712
1
  Trace("options") << "user assigned option statisticsAll = " << value << std::endl;
2713
1
}
2714
2715
void assign_base_statisticsEveryQuery(Options& opts, const std::string& option, bool value) {
2716
  opts.handler().setStats("stats-every-query", option, value);
2717
  opts.base.statisticsEveryQuery = value;
2718
  opts.base.statisticsEveryQueryWasSetByUser = true;
2719
  Trace("options") << "user assigned option statisticsEveryQuery = " << value << std::endl;
2720
}
2721
2722
1
void assign_base_statisticsExpert(Options& opts, const std::string& option, bool value) {
2723
1
  opts.handler().setStats("stats-expert", option, value);
2724
1
  opts.base.statisticsExpert = value;
2725
1
  opts.base.statisticsExpertWasSetByUser = true;
2726
1
  Trace("options") << "user assigned option statisticsExpert = " << value << std::endl;
2727
1
}
2728
2729
6
void assign_base_perCallMillisecondLimit(Options& opts, const std::string& option, const std::string& optionarg) {
2730
6
  auto value = handleOption<uint64_t>("tlimit-per", option, optionarg);
2731
2732
6
  opts.base.perCallMillisecondLimit = value;
2733
6
  opts.base.perCallMillisecondLimitWasSetByUser = true;
2734
6
  Trace("options") << "user assigned option perCallMillisecondLimit = " << value << std::endl;
2735
6
}
2736
2737
void assign_base_cumulativeMillisecondLimit(Options& opts, const std::string& option, const std::string& optionarg) {
2738
  auto value = handleOption<uint64_t>("tlimit", option, optionarg);
2739
2740
  opts.base.cumulativeMillisecondLimit = value;
2741
  opts.base.cumulativeMillisecondLimitWasSetByUser = true;
2742
  Trace("options") << "user assigned option cumulativeMillisecondLimit = " << value << std::endl;
2743
}
2744
2745
6
void assign_base_verbosity(Options& opts, const std::string& option, const std::string& optionarg) {
2746
6
  auto value = handleOption<int64_t>("verbosity", option, optionarg);
2747
6
  opts.handler().setVerbosity("verbosity", option, value);
2748
6
  opts.base.verbosity = value;
2749
6
  opts.base.verbosityWasSetByUser = true;
2750
6
  Trace("options") << "user assigned option verbosity = " << value << std::endl;
2751
6
}
2752
2753
void assign_bv_bitvectorAig(Options& opts, const std::string& option, bool value) {
2754
  opts.handler().abcEnabledBuild("bitblast-aig", option, value);
2755
opts.handler().setBitblastAig("bitblast-aig", option, value);
2756
  opts.bv.bitvectorAig = value;
2757
  opts.bv.bitvectorAigWasSetByUser = true;
2758
  Trace("options") << "user assigned option bitvectorAig = " << value << std::endl;
2759
}
2760
2761
40
void assign_bv_bitblastMode(Options& opts, const std::string& option, const std::string& optionarg) {
2762
40
  auto value = stringToBitblastMode(optionarg);
2763
2764
40
  opts.bv.bitblastMode = value;
2765
40
  opts.bv.bitblastModeWasSetByUser = true;
2766
40
  Trace("options") << "user assigned option bitblastMode = " << value << std::endl;
2767
40
}
2768
2769
void assign_bv_bitwiseEq(Options& opts, const std::string& option, bool value) {
2770
2771
  opts.bv.bitwiseEq = value;
2772
  opts.bv.bitwiseEqWasSetByUser = true;
2773
  Trace("options") << "user assigned option bitwiseEq = " << value << std::endl;
2774
}
2775
2776
12
void assign_bv_boolToBitvector(Options& opts, const std::string& option, const std::string& optionarg) {
2777
12
  auto value = stringToBoolToBVMode(optionarg);
2778
2779
12
  opts.bv.boolToBitvector = value;
2780
12
  opts.bv.boolToBitvectorWasSetByUser = true;
2781
12
  Trace("options") << "user assigned option boolToBitvector = " << value << std::endl;
2782
12
}
2783
2784
4
void assign_bv_bvAbstraction(Options& opts, const std::string& option, bool value) {
2785
2786
4
  opts.bv.bvAbstraction = value;
2787
4
  opts.bv.bvAbstractionWasSetByUser = true;
2788
4
  Trace("options") << "user assigned option bvAbstraction = " << value << std::endl;
2789
4
}
2790
2791
void assign_bv_bitvectorAigSimplifications(Options& opts, const std::string& option, const std::string& optionarg) {
2792
  auto value = handleOption<std::string>("bv-aig-simp", option, optionarg);
2793
  opts.handler().abcEnabledBuild("bv-aig-simp", option, value);
2794
  opts.bv.bitvectorAigSimplifications = value;
2795
  opts.bv.bitvectorAigSimplificationsWasSetByUser = true;
2796
  Trace("options") << "user assigned option bitvectorAigSimplifications = " << value << std::endl;
2797
}
2798
2799
void assign_bv_bvAlgExtf(Options& opts, const std::string& option, bool value) {
2800
2801
  opts.bv.bvAlgExtf = value;
2802
  opts.bv.bvAlgExtfWasSetByUser = true;
2803
  Trace("options") << "user assigned option bvAlgExtf = " << value << std::endl;
2804
}
2805
2806
void assign_bv_bitvectorAlgebraicBudget(Options& opts, const std::string& option, const std::string& optionarg) {
2807
  auto value = handleOption<uint64_t>("bv-algebraic-budget", option, optionarg);
2808
2809
  opts.bv.bitvectorAlgebraicBudget = value;
2810
  opts.bv.bitvectorAlgebraicBudgetWasSetByUser = true;
2811
  Trace("options") << "user assigned option bitvectorAlgebraicBudget = " << value << std::endl;
2812
}
2813
2814
void assign_bv_bitvectorAlgebraicSolver(Options& opts, const std::string& option, bool value) {
2815
2816
  opts.bv.bitvectorAlgebraicSolver = value;
2817
  opts.bv.bitvectorAlgebraicSolverWasSetByUser = true;
2818
  Trace("options") << "user assigned option bitvectorAlgebraicSolver = " << value << std::endl;
2819
}
2820
2821
6
void assign_bv_bvAssertInput(Options& opts, const std::string& option, bool value) {
2822
2823
6
  opts.bv.bvAssertInput = value;
2824
6
  opts.bv.bvAssertInputWasSetByUser = true;
2825
6
  Trace("options") << "user assigned option bvAssertInput = " << value << std::endl;
2826
6
}
2827
2828
void assign_bv_bvEagerExplanations(Options& opts, const std::string& option, bool value) {
2829
2830
  opts.bv.bvEagerExplanations = value;
2831
  opts.bv.bvEagerExplanationsWasSetByUser = true;
2832
  Trace("options") << "user assigned option bvEagerExplanations = " << value << std::endl;
2833
}
2834
2835
2
void assign_bv_bitvectorEqualitySolver(Options& opts, const std::string& option, bool value) {
2836
2837
2
  opts.bv.bitvectorEqualitySolver = value;
2838
2
  opts.bv.bitvectorEqualitySolverWasSetByUser = true;
2839
2
  Trace("options") << "user assigned option bitvectorEqualitySolver = " << value << std::endl;
2840
2
}
2841
2842
void assign_bv_bvExtractArithRewrite(Options& opts, const std::string& option, bool value) {
2843
2844
  opts.bv.bvExtractArithRewrite = value;
2845
  opts.bv.bvExtractArithRewriteWasSetByUser = true;
2846
  Trace("options") << "user assigned option bvExtractArithRewrite = " << value << std::endl;
2847
}
2848
2849
void assign_bv_bvGaussElim(Options& opts, const std::string& option, bool value) {
2850
2851
  opts.bv.bvGaussElim = value;
2852
  opts.bv.bvGaussElimWasSetByUser = true;
2853
  Trace("options") << "user assigned option bvGaussElim = " << value << std::endl;
2854
}
2855
2856
void assign_bv_bitvectorInequalitySolver(Options& opts, const std::string& option, bool value) {
2857
2858
  opts.bv.bitvectorInequalitySolver = value;
2859
  opts.bv.bitvectorInequalitySolverWasSetByUser = true;
2860
  Trace("options") << "user assigned option bitvectorInequalitySolver = " << value << std::endl;
2861
}
2862
2863
2
void assign_bv_bvIntroducePow2(Options& opts, const std::string& option, bool value) {
2864
2865
2
  opts.bv.bvIntroducePow2 = value;
2866
2
  opts.bv.bvIntroducePow2WasSetByUser = true;
2867
2
  Trace("options") << "user assigned option bvIntroducePow2 = " << value << std::endl;
2868
2
}
2869
2870
void assign_bv_bvNumFunc(Options& opts, const std::string& option, const std::string& optionarg) {
2871
  auto value = handleOption<uint64_t>("bv-num-func", option, optionarg);
2872
2873
  opts.bv.bvNumFunc = value;
2874
  opts.bv.bvNumFuncWasSetByUser = true;
2875
  Trace("options") << "user assigned option bvNumFunc = " << value << std::endl;
2876
}
2877
2878
2
void assign_bv_bvPrintConstsAsIndexedSymbols(Options& opts, const std::string& option, bool value) {
2879
2880
2
  opts.bv.bvPrintConstsAsIndexedSymbols = value;
2881
2
  opts.bv.bvPrintConstsAsIndexedSymbolsWasSetByUser = true;
2882
2
  Trace("options") << "user assigned option bvPrintConstsAsIndexedSymbols = " << value << std::endl;
2883
2
}
2884
2885
void assign_bv_bitvectorPropagate(Options& opts, const std::string& option, bool value) {
2886
2887
  opts.bv.bitvectorPropagate = value;
2888
  opts.bv.bitvectorPropagateWasSetByUser = true;
2889
  Trace("options") << "user assigned option bitvectorPropagate = " << value << std::endl;
2890
}
2891
2892
void assign_bv_bitvectorQuickXplain(Options& opts, const std::string& option, bool value) {
2893
2894
  opts.bv.bitvectorQuickXplain = value;
2895
  opts.bv.bitvectorQuickXplainWasSetByUser = true;
2896
  Trace("options") << "user assigned option bitvectorQuickXplain = " << value << std::endl;
2897
}
2898
2899
18
void assign_bv_bvSatSolver(Options& opts, const std::string& option, const std::string& optionarg) {
2900
18
  auto value = stringToSatSolverMode(optionarg);
2901
16
  opts.handler().checkBvSatSolver("bv-sat-solver", option, value);
2902
16
  opts.bv.bvSatSolver = value;
2903
16
  opts.bv.bvSatSolverWasSetByUser = true;
2904
16
  Trace("options") << "user assigned option bvSatSolver = " << value << std::endl;
2905
16
}
2906
2907
void assign_bv_skolemizeArguments(Options& opts, const std::string& option, bool value) {
2908
2909
  opts.bv.skolemizeArguments = value;
2910
  opts.bv.skolemizeArgumentsWasSetByUser = true;
2911
  Trace("options") << "user assigned option skolemizeArguments = " << value << std::endl;
2912
}
2913
2914
46
void assign_bv_bvSolver(Options& opts, const std::string& option, const std::string& optionarg) {
2915
46
  auto value = stringToBVSolver(optionarg);
2916
2917
46
  opts.bv.bvSolver = value;
2918
46
  opts.bv.bvSolverWasSetByUser = true;
2919
46
  Trace("options") << "user assigned option bvSolver = " << value << std::endl;
2920
46
}
2921
2922
10
void assign_bv_bitvectorToBool(Options& opts, const std::string& option, bool value) {
2923
2924
10
  opts.bv.bitvectorToBool = value;
2925
10
  opts.bv.bitvectorToBoolWasSetByUser = true;
2926
10
  Trace("options") << "user assigned option bitvectorToBool = " << value << std::endl;
2927
10
}
2928
2929
void assign_datatypes_cdtBisimilar(Options& opts, const std::string& option, bool value) {
2930
2931
  opts.datatypes.cdtBisimilar = value;
2932
  opts.datatypes.cdtBisimilarWasSetByUser = true;
2933
  Trace("options") << "user assigned option cdtBisimilar = " << value << std::endl;
2934
}
2935
2936
void assign_datatypes_dtBinarySplit(Options& opts, const std::string& option, bool value) {
2937
2938
  opts.datatypes.dtBinarySplit = value;
2939
  opts.datatypes.dtBinarySplitWasSetByUser = true;
2940
  Trace("options") << "user assigned option dtBinarySplit = " << value << std::endl;
2941
}
2942
2943
void assign_datatypes_dtBlastSplits(Options& opts, const std::string& option, bool value) {
2944
2945
  opts.datatypes.dtBlastSplits = value;
2946
  opts.datatypes.dtBlastSplitsWasSetByUser = true;
2947
  Trace("options") << "user assigned option dtBlastSplits = " << value << std::endl;
2948
}
2949
2950
void assign_datatypes_dtCyclic(Options& opts, const std::string& option, bool value) {
2951
2952
  opts.datatypes.dtCyclic = value;
2953
  opts.datatypes.dtCyclicWasSetByUser = true;
2954
  Trace("options") << "user assigned option dtCyclic = " << value << std::endl;
2955
}
2956
2957
void assign_datatypes_dtForceAssignment(Options& opts, const std::string& option, bool value) {
2958
2959
  opts.datatypes.dtForceAssignment = value;
2960
  opts.datatypes.dtForceAssignmentWasSetByUser = true;
2961
  Trace("options") << "user assigned option dtForceAssignment = " << value << std::endl;
2962
}
2963
2964
void assign_datatypes_dtInferAsLemmas(Options& opts, const std::string& option, bool value) {
2965
2966
  opts.datatypes.dtInferAsLemmas = value;
2967
  opts.datatypes.dtInferAsLemmasWasSetByUser = true;
2968
  Trace("options") << "user assigned option dtInferAsLemmas = " << value << std::endl;
2969
}
2970
2971
10
void assign_datatypes_dtNestedRec(Options& opts, const std::string& option, bool value) {
2972
2973
10
  opts.datatypes.dtNestedRec = value;
2974
10
  opts.datatypes.dtNestedRecWasSetByUser = true;
2975
10
  Trace("options") << "user assigned option dtNestedRec = " << value << std::endl;
2976
10
}
2977
2978
void assign_datatypes_dtPoliteOptimize(Options& opts, const std::string& option, bool value) {
2979
2980
  opts.datatypes.dtPoliteOptimize = value;
2981
  opts.datatypes.dtPoliteOptimizeWasSetByUser = true;
2982
  Trace("options") << "user assigned option dtPoliteOptimize = " << value << std::endl;
2983
}
2984
2985
5
void assign_datatypes_dtRewriteErrorSel(Options& opts, const std::string& option, bool value) {
2986
2987
5
  opts.datatypes.dtRewriteErrorSel = value;
2988
5
  opts.datatypes.dtRewriteErrorSelWasSetByUser = true;
2989
5
  Trace("options") << "user assigned option dtRewriteErrorSel = " << value << std::endl;
2990
5
}
2991
2992
void assign_datatypes_dtSharedSelectors(Options& opts, const std::string& option, bool value) {
2993
2994
  opts.datatypes.dtSharedSelectors = value;
2995
  opts.datatypes.dtSharedSelectorsWasSetByUser = true;
2996
  Trace("options") << "user assigned option dtSharedSelectors = " << value << std::endl;
2997
}
2998
2999
11
void assign_datatypes_sygusAbortSize(Options& opts, const std::string& option, const std::string& optionarg) {
3000
11
  auto value = handleOption<int64_t>("sygus-abort-size", option, optionarg);
3001
3002
11
  opts.datatypes.sygusAbortSize = value;
3003
11
  opts.datatypes.sygusAbortSizeWasSetByUser = true;
3004
11
  Trace("options") << "user assigned option sygusAbortSize = " << value << std::endl;
3005
11
}
3006
3007
void assign_datatypes_sygusFairMax(Options& opts, const std::string& option, bool value) {
3008
3009
  opts.datatypes.sygusFairMax = value;
3010
  opts.datatypes.sygusFairMaxWasSetByUser = true;
3011
  Trace("options") << "user assigned option sygusFairMax = " << value << std::endl;
3012
}
3013
3014
2
void assign_datatypes_sygusFair(Options& opts, const std::string& option, const std::string& optionarg) {
3015
2
  auto value = stringToSygusFairMode(optionarg);
3016
3017
2
  opts.datatypes.sygusFair = value;
3018
2
  opts.datatypes.sygusFairWasSetByUser = true;
3019
2
  Trace("options") << "user assigned option sygusFair = " << value << std::endl;
3020
2
}
3021
3022
8
void assign_datatypes_sygusSymBreak(Options& opts, const std::string& option, bool value) {
3023
3024
8
  opts.datatypes.sygusSymBreak = value;
3025
8
  opts.datatypes.sygusSymBreakWasSetByUser = true;
3026
8
  Trace("options") << "user assigned option sygusSymBreak = " << value << std::endl;
3027
8
}
3028
3029
void assign_datatypes_sygusSymBreakAgg(Options& opts, const std::string& option, bool value) {
3030
3031
  opts.datatypes.sygusSymBreakAgg = value;
3032
  opts.datatypes.sygusSymBreakAggWasSetByUser = true;
3033
  Trace("options") << "user assigned option sygusSymBreakAgg = " << value << std::endl;
3034
}
3035
3036
void assign_datatypes_sygusSymBreakDynamic(Options& opts, const std::string& option, bool value) {
3037
3038
  opts.datatypes.sygusSymBreakDynamic = value;
3039
  opts.datatypes.sygusSymBreakDynamicWasSetByUser = true;
3040
  Trace("options") << "user assigned option sygusSymBreakDynamic = " << value << std::endl;
3041
}
3042
3043
2
void assign_datatypes_sygusSymBreakLazy(Options& opts, const std::string& option, bool value) {
3044
3045
2
  opts.datatypes.sygusSymBreakLazy = value;
3046
2
  opts.datatypes.sygusSymBreakLazyWasSetByUser = true;
3047
2
  Trace("options") << "user assigned option sygusSymBreakLazy = " << value << std::endl;
3048
2
}
3049
3050
void assign_datatypes_sygusSymBreakPbe(Options& opts, const std::string& option, bool value) {
3051
3052
  opts.datatypes.sygusSymBreakPbe = value;
3053
  opts.datatypes.sygusSymBreakPbeWasSetByUser = true;
3054
  Trace("options") << "user assigned option sygusSymBreakPbe = " << value << std::endl;
3055
}
3056
3057
2
void assign_datatypes_sygusSymBreakRlv(Options& opts, const std::string& option, bool value) {
3058
3059
2
  opts.datatypes.sygusSymBreakRlv = value;
3060
2
  opts.datatypes.sygusSymBreakRlvWasSetByUser = true;
3061
2
  Trace("options") << "user assigned option sygusSymBreakRlv = " << value << std::endl;
3062
2
}
3063
3064
void assign_decision_decisionRandomWeight(Options& opts, const std::string& option, const std::string& optionarg) {
3065
  auto value = handleOption<int64_t>("decision-random-weight", option, optionarg);
3066
3067
  opts.decision.decisionRandomWeight = value;
3068
  opts.decision.decisionRandomWeightWasSetByUser = true;
3069
  Trace("options") << "user assigned option decisionRandomWeight = " << value << std::endl;
3070
}
3071
3072
void assign_decision_decisionThreshold(Options& opts, const std::string& option, const std::string& optionarg) {
3073
  auto value = handleOption<cvc5::decision::DecisionWeight>("decision-threshold", option, optionarg);
3074
3075
  opts.decision.decisionThreshold = value;
3076
  opts.decision.decisionThresholdWasSetByUser = true;
3077
  Trace("options") << "user assigned option decisionThreshold = " << value << std::endl;
3078
}
3079
3080
void assign_decision_decisionUseWeight(Options& opts, const std::string& option, bool value) {
3081
3082
  opts.decision.decisionUseWeight = value;
3083
  opts.decision.decisionUseWeightWasSetByUser = true;
3084
  Trace("options") << "user assigned option decisionUseWeight = " << value << std::endl;
3085
}
3086
3087
void assign_decision_decisionWeightInternal(Options& opts, const std::string& option, const std::string& optionarg) {
3088
  auto value = stringToDecisionWeightInternal(optionarg);
3089
3090
  opts.decision.decisionWeightInternal = value;
3091
  opts.decision.decisionWeightInternalWasSetByUser = true;
3092
  Trace("options") << "user assigned option decisionWeightInternal = " << value << std::endl;
3093
}
3094
3095
94
void assign_decision_decisionMode(Options& opts, const std::string& option, const std::string& optionarg) {
3096
94
  auto value = stringToDecisionMode(optionarg);
3097
3098
94
  opts.decision.decisionMode = value;
3099
94
  opts.decision.decisionModeWasSetByUser = true;
3100
94
  Trace("options") << "user assigned option decisionMode = " << value << std::endl;
3101
94
}
3102
3103
10
void assign_decision_jhRlvOrder(Options& opts, const std::string& option, bool value) {
3104
3105
10
  opts.decision.jhRlvOrder = value;
3106
10
  opts.decision.jhRlvOrderWasSetByUser = true;
3107
10
  Trace("options") << "user assigned option jhRlvOrder = " << value << std::endl;
3108
10
}
3109
3110
void assign_decision_jhSkolemRlvMode(Options& opts, const std::string& option, const std::string& optionarg) {
3111
  auto value = stringToJutificationSkolemRlvMode(optionarg);
3112
3113
  opts.decision.jhSkolemRlvMode = value;
3114
  opts.decision.jhSkolemRlvModeWasSetByUser = true;
3115
  Trace("options") << "user assigned option jhSkolemRlvMode = " << value << std::endl;
3116
}
3117
3118
void assign_decision_jhSkolemMode(Options& opts, const std::string& option, const std::string& optionarg) {
3119
  auto value = stringToJutificationSkolemMode(optionarg);
3120
3121
  opts.decision.jhSkolemMode = value;
3122
  opts.decision.jhSkolemModeWasSetByUser = true;
3123
  Trace("options") << "user assigned option jhSkolemMode = " << value << std::endl;
3124
}
3125
3126
2
void assign_expr_defaultDagThresh(Options& opts, const std::string& option, const std::string& optionarg) {
3127
2
  auto value = handleOption<int64_t>("dag-thresh", option, optionarg);
3128
2
  opts.handler().checkMinimum("dag-thresh", option, value, static_cast<int64_t>(0));
3129
2
opts.handler().setDefaultDagThresh("dag-thresh", option, value);
3130
2
  opts.expr.defaultDagThresh = value;
3131
2
  opts.expr.defaultDagThreshWasSetByUser = true;
3132
2
  Trace("options") << "user assigned option defaultDagThresh = " << value << std::endl;
3133
2
}
3134
3135
void assign_expr_defaultExprDepth(Options& opts, const std::string& option, const std::string& optionarg) {
3136
  auto value = handleOption<int64_t>("expr-depth", option, optionarg);
3137
  opts.handler().checkMinimum("expr-depth", option, value, static_cast<int64_t>(-1));
3138
opts.handler().setDefaultExprDepth("expr-depth", option, value);
3139
  opts.expr.defaultExprDepth = value;
3140
  opts.expr.defaultExprDepthWasSetByUser = true;
3141
  Trace("options") << "user assigned option defaultExprDepth = " << value << std::endl;
3142
}
3143
3144
void assign_expr_typeChecking(Options& opts, const std::string& option, bool value) {
3145
3146
  opts.expr.typeChecking = value;
3147
  opts.expr.typeCheckingWasSetByUser = true;
3148
  Trace("options") << "user assigned option typeChecking = " << value << std::endl;
3149
}
3150
3151
22
void assign_fp_fpExp(Options& opts, const std::string& option, bool value) {
3152
3153
22
  opts.fp.fpExp = value;
3154
22
  opts.fp.fpExpWasSetByUser = true;
3155
22
  Trace("options") << "user assigned option fpExp = " << value << std::endl;
3156
22
}
3157
3158
3
void assign_fp_fpLazyWb(Options& opts, const std::string& option, bool value) {
3159
3160
3
  opts.fp.fpLazyWb = value;
3161
3
  opts.fp.fpLazyWbWasSetByUser = true;
3162
3
  Trace("options") << "user assigned option fpLazyWb = " << value << std::endl;
3163
3
}
3164
3165
12
void assign_driver_dumpInstantiations(Options& opts, const std::string& option, bool value) {
3166
3167
12
  opts.driver.dumpInstantiations = value;
3168
12
  opts.driver.dumpInstantiationsWasSetByUser = true;
3169
12
  Trace("options") << "user assigned option dumpInstantiations = " << value << std::endl;
3170
12
}
3171
3172
void assign_driver_dumpInstantiationsDebug(Options& opts, const std::string& option, bool value) {
3173
3174
  opts.driver.dumpInstantiationsDebug = value;
3175
  opts.driver.dumpInstantiationsDebugWasSetByUser = true;
3176
  Trace("options") << "user assigned option dumpInstantiationsDebug = " << value << std::endl;
3177
}
3178
3179
6
void assign_driver_dumpModels(Options& opts, const std::string& option, bool value) {
3180
3181
6
  opts.driver.dumpModels = value;
3182
6
  opts.driver.dumpModelsWasSetByUser = true;
3183
6
  Trace("options") << "user assigned option dumpModels = " << value << std::endl;
3184
6
}
3185
3186
void assign_driver_dumpProofs(Options& opts, const std::string& option, bool value) {
3187
3188
  opts.driver.dumpProofs = value;
3189
  opts.driver.dumpProofsWasSetByUser = true;
3190
  Trace("options") << "user assigned option dumpProofs = " << value << std::endl;
3191
}
3192
3193
void assign_driver_dumpUnsatCores(Options& opts, const std::string& option, bool value) {
3194
3195
  opts.driver.dumpUnsatCores = value;
3196
  opts.driver.dumpUnsatCoresWasSetByUser = true;
3197
  Trace("options") << "user assigned option dumpUnsatCores = " << value << std::endl;
3198
}
3199
3200
3
void assign_driver_dumpUnsatCoresFull(Options& opts, const std::string& option, bool value) {
3201
3202
3
  opts.driver.dumpUnsatCoresFull = value;
3203
3
  opts.driver.dumpUnsatCoresFullWasSetByUser = true;
3204
3
  Trace("options") << "user assigned option dumpUnsatCoresFull = " << value << std::endl;
3205
3
}
3206
3207
void assign_driver_earlyExit(Options& opts, const std::string& option, bool value) {
3208
3209
  opts.driver.earlyExit = value;
3210
  opts.driver.earlyExitWasSetByUser = true;
3211
  Trace("options") << "user assigned option earlyExit = " << value << std::endl;
3212
}
3213
3214
void assign_driver_forceNoLimitCpuWhileDump(Options& opts, const std::string& option, bool value) {
3215
3216
  opts.driver.forceNoLimitCpuWhileDump = value;
3217
  opts.driver.forceNoLimitCpuWhileDumpWasSetByUser = true;
3218
  Trace("options") << "user assigned option forceNoLimitCpuWhileDump = " << value << std::endl;
3219
}
3220
3221
void assign_driver_help(Options& opts, const std::string& option, bool value) {
3222
3223
  opts.driver.help = value;
3224
  opts.driver.helpWasSetByUser = true;
3225
  Trace("options") << "user assigned option help = " << value << std::endl;
3226
}
3227
3228
void assign_driver_interactive(Options& opts, const std::string& option, bool value) {
3229
3230
  opts.driver.interactive = value;
3231
  opts.driver.interactiveWasSetByUser = true;
3232
  Trace("options") << "user assigned option interactive = " << value << std::endl;
3233
}
3234
3235
void assign_driver_interactivePrompt(Options& opts, const std::string& option, bool value) {
3236
3237
  opts.driver.interactivePrompt = value;
3238
  opts.driver.interactivePromptWasSetByUser = true;
3239
  Trace("options") << "user assigned option interactivePrompt = " << value << std::endl;
3240
}
3241
3242
void assign_driver_seed(Options& opts, const std::string& option, const std::string& optionarg) {
3243
  auto value = handleOption<uint64_t>("seed", option, optionarg);
3244
3245
  opts.driver.seed = value;
3246
  opts.driver.seedWasSetByUser = true;
3247
  Trace("options") << "user assigned option seed = " << value << std::endl;
3248
}
3249
3250
void assign_driver_segvSpin(Options& opts, const std::string& option, bool value) {
3251
3252
  opts.driver.segvSpin = value;
3253
  opts.driver.segvSpinWasSetByUser = true;
3254
  Trace("options") << "user assigned option segvSpin = " << value << std::endl;
3255
}
3256
3257
void assign_driver_version(Options& opts, const std::string& option, bool value) {
3258
3259
  opts.driver.version = value;
3260
  opts.driver.versionWasSetByUser = true;
3261
  Trace("options") << "user assigned option version = " << value << std::endl;
3262
}
3263
3264
void assign_parser_filesystemAccess(Options& opts, const std::string& option, bool value) {
3265
3266
  opts.parser.filesystemAccess = value;
3267
  opts.parser.filesystemAccessWasSetByUser = true;
3268
  Trace("options") << "user assigned option filesystemAccess = " << value << std::endl;
3269
}
3270
3271
9
void assign_parser_forceLogicString(Options& opts, const std::string& option, const std::string& optionarg) {
3272
18
  auto value = handleOption<std::string>("force-logic", option, optionarg);
3273
3274
9
  opts.parser.forceLogicString = value;
3275
9
  opts.parser.forceLogicStringWasSetByUser = true;
3276
9
  Trace("options") << "user assigned option forceLogicString = " << value << std::endl;
3277
9
}
3278
3279
19
void assign_parser_globalDeclarations(Options& opts, const std::string& option, bool value) {
3280
3281
19
  opts.parser.globalDeclarations = value;
3282
19
  opts.parser.globalDeclarationsWasSetByUser = true;
3283
19
  Trace("options") << "user assigned option globalDeclarations = " << value << std::endl;
3284
19
}
3285
3286
void assign_parser_memoryMap(Options& opts, const std::string& option, bool value) {
3287
3288
  opts.parser.memoryMap = value;
3289
  opts.parser.memoryMapWasSetByUser = true;
3290
  Trace("options") << "user assigned option memoryMap = " << value << std::endl;
3291
}
3292
3293
void assign_parser_semanticChecks(Options& opts, const std::string& option, bool value) {
3294
3295
  opts.parser.semanticChecks = value;
3296
  opts.parser.semanticChecksWasSetByUser = true;
3297
  Trace("options") << "user assigned option semanticChecks = " << value << std::endl;
3298
}
3299
3300
9
void assign_parser_strictParsing(Options& opts, const std::string& option, bool value) {
3301
3302
9
  opts.parser.strictParsing = value;
3303
9
  opts.parser.strictParsingWasSetByUser = true;
3304
9
  Trace("options") << "user assigned option strictParsing = " << value << std::endl;
3305
9
}
3306
3307
void assign_printer_flattenHOChains(Options& opts, const std::string& option, bool value) {
3308
3309
  opts.printer.flattenHOChains = value;
3310
  opts.printer.flattenHOChainsWasSetByUser = true;
3311
  Trace("options") << "user assigned option flattenHOChains = " << value << std::endl;
3312
}
3313
3314
void assign_printer_instFormatMode(Options& opts, const std::string& option, const std::string& optionarg) {
3315
  auto value = opts.handler().stringToInstFormatMode("inst-format", option, optionarg);
3316
3317
  opts.printer.instFormatMode = value;
3318
  opts.printer.instFormatModeWasSetByUser = true;
3319
  Trace("options") << "user assigned option instFormatMode = " << value << std::endl;
3320
}
3321
3322
void assign_printer_modelFormatMode(Options& opts, const std::string& option, const std::string& optionarg) {
3323
  auto value = stringToModelFormatMode(optionarg);
3324
3325
  opts.printer.modelFormatMode = value;
3326
  opts.printer.modelFormatModeWasSetByUser = true;
3327
  Trace("options") << "user assigned option modelFormatMode = " << value << std::endl;
3328
}
3329
3330
12
void assign_printer_printInstFull(Options& opts, const std::string& option, bool value) {
3331
3332
12
  opts.printer.printInstFull = value;
3333
12
  opts.printer.printInstFullWasSetByUser = true;
3334
12
  Trace("options") << "user assigned option printInstFull = " << value << std::endl;
3335
12
}
3336
3337
3
void assign_printer_printInstMode(Options& opts, const std::string& option, const std::string& optionarg) {
3338
3
  auto value = stringToPrintInstMode(optionarg);
3339
3340
3
  opts.printer.printInstMode = value;
3341
3
  opts.printer.printInstModeWasSetByUser = true;
3342
3
  Trace("options") << "user assigned option printInstMode = " << value << std::endl;
3343
3
}
3344
3345
2
void assign_proof_proofEagerChecking(Options& opts, const std::string& option, bool value) {
3346
3347
2
  opts.proof.proofEagerChecking = value;
3348
2
  opts.proof.proofEagerCheckingWasSetByUser = true;
3349
2
  Trace("options") << "user assigned option proofEagerChecking = " << value << std::endl;
3350
2
}
3351
3352
void assign_proof_proofFormatMode(Options& opts, const std::string& option, const std::string& optionarg) {
3353
  auto value = stringToProofFormatMode(optionarg);
3354
3355
  opts.proof.proofFormatMode = value;
3356
  opts.proof.proofFormatModeWasSetByUser = true;
3357
  Trace("options") << "user assigned option proofFormatMode = " << value << std::endl;
3358
}
3359
3360
void assign_proof_proofGranularityMode(Options& opts, const std::string& option, const std::string& optionarg) {
3361
  auto value = stringToProofGranularityMode(optionarg);
3362
3363
  opts.proof.proofGranularityMode = value;
3364
  opts.proof.proofGranularityModeWasSetByUser = true;
3365
  Trace("options") << "user assigned option proofGranularityMode = " << value << std::endl;
3366
}
3367
3368
void assign_proof_proofPedantic(Options& opts, const std::string& option, const std::string& optionarg) {
3369
  auto value = handleOption<uint64_t>("proof-pedantic", option, optionarg);
3370
3371
  opts.proof.proofPedantic = value;
3372
  opts.proof.proofPedanticWasSetByUser = true;
3373
  Trace("options") << "user assigned option proofPedantic = " << value << std::endl;
3374
}
3375
3376
void assign_proof_proofPrintConclusion(Options& opts, const std::string& option, bool value) {
3377
3378
  opts.proof.proofPrintConclusion = value;
3379
  opts.proof.proofPrintConclusionWasSetByUser = true;
3380
  Trace("options") << "user assigned option proofPrintConclusion = " << value << std::endl;
3381
}
3382
3383
void assign_prop_minisatDumpDimacs(Options& opts, const std::string& option, bool value) {
3384
3385
  opts.prop.minisatDumpDimacs = value;
3386
  opts.prop.minisatDumpDimacsWasSetByUser = true;
3387
  Trace("options") << "user assigned option minisatDumpDimacs = " << value << std::endl;
3388
}
3389
3390
void assign_prop_minisatUseElim(Options& opts, const std::string& option, bool value) {
3391
3392
  opts.prop.minisatUseElim = value;
3393
  opts.prop.minisatUseElimWasSetByUser = true;
3394
  Trace("options") << "user assigned option minisatUseElim = " << value << std::endl;
3395
}
3396
3397
void assign_prop_satRandomFreq(Options& opts, const std::string& option, const std::string& optionarg) {
3398
  auto value = handleOption<double>("random-freq", option, optionarg);
3399
  opts.handler().checkMinimum("random-freq", option, value, static_cast<double>(0.0));
3400
opts.handler().checkMaximum("random-freq", option, value, static_cast<double>(1.0));
3401
  opts.prop.satRandomFreq = value;
3402
  opts.prop.satRandomFreqWasSetByUser = true;
3403
  Trace("options") << "user assigned option satRandomFreq = " << value << std::endl;
3404
}
3405
3406
2
void assign_prop_satRandomSeed(Options& opts, const std::string& option, const std::string& optionarg) {
3407
2
  auto value = handleOption<uint64_t>("random-seed", option, optionarg);
3408
3409
2
  opts.prop.satRandomSeed = value;
3410
2
  opts.prop.satRandomSeedWasSetByUser = true;
3411
2
  Trace("options") << "user assigned option satRandomSeed = " << value << std::endl;
3412
2
}
3413
3414
void assign_prop_sat_refine_conflicts(Options& opts, const std::string& option, bool value) {
3415
3416
  opts.prop.sat_refine_conflicts = value;
3417
  opts.prop.sat_refine_conflictsWasSetByUser = true;
3418
  Trace("options") << "user assigned option sat_refine_conflicts = " << value << std::endl;
3419
}
3420
3421
void assign_prop_satRestartFirst(Options& opts, const std::string& option, const std::string& optionarg) {
3422
  auto value = handleOption<uint64_t>("restart-int-base", option, optionarg);
3423
3424
  opts.prop.satRestartFirst = value;
3425
  opts.prop.satRestartFirstWasSetByUser = true;
3426
  Trace("options") << "user assigned option satRestartFirst = " << value << std::endl;
3427
}
3428
3429
void assign_prop_satRestartInc(Options& opts, const std::string& option, const std::string& optionarg) {
3430
  auto value = handleOption<double>("restart-int-inc", option, optionarg);
3431
  opts.handler().checkMinimum("restart-int-inc", option, value, static_cast<double>(0.0));
3432
  opts.prop.satRestartInc = value;
3433
  opts.prop.satRestartIncWasSetByUser = true;
3434
  Trace("options") << "user assigned option satRestartInc = " << value << std::endl;
3435
}
3436
3437
4
void assign_quantifiers_aggressiveMiniscopeQuant(Options& opts, const std::string& option, bool value) {
3438
3439
4
  opts.quantifiers.aggressiveMiniscopeQuant = value;
3440
4
  opts.quantifiers.aggressiveMiniscopeQuantWasSetByUser = true;
3441
4
  Trace("options") << "user assigned option aggressiveMiniscopeQuant = " << value << std::endl;
3442
4
}
3443
3444
3
void assign_quantifiers_cegisSample(Options& opts, const std::string& option, const std::string& optionarg) {
3445
3
  auto value = stringToCegisSampleMode(optionarg);
3446
3447
3
  opts.quantifiers.cegisSample = value;
3448
3
  opts.quantifiers.cegisSampleWasSetByUser = true;
3449
3
  Trace("options") << "user assigned option cegisSample = " << value << std::endl;
3450
3
}
3451
3452
19
void assign_quantifiers_cegqi(Options& opts, const std::string& option, bool value) {
3453
3454
19
  opts.quantifiers.cegqi = value;
3455
19
  opts.quantifiers.cegqiWasSetByUser = true;
3456
19
  Trace("options") << "user assigned option cegqi = " << value << std::endl;
3457
19
}
3458
3459
18
void assign_quantifiers_cegqiAll(Options& opts, const std::string& option, bool value) {
3460
3461
18
  opts.quantifiers.cegqiAll = value;
3462
18
  opts.quantifiers.cegqiAllWasSetByUser = true;
3463
18
  Trace("options") << "user assigned option cegqiAll = " << value << std::endl;
3464
18
}
3465
3466
106
void assign_quantifiers_cegqiBv(Options& opts, const std::string& option, bool value) {
3467
3468
106
  opts.quantifiers.cegqiBv = value;
3469
106
  opts.quantifiers.cegqiBvWasSetByUser = true;
3470
106
  Trace("options") << "user assigned option cegqiBv = " << value << std::endl;
3471
106
}
3472
3473
void assign_quantifiers_cegqiBvConcInv(Options& opts, const std::string& option, bool value) {
3474
3475
  opts.quantifiers.cegqiBvConcInv = value;
3476
  opts.quantifiers.cegqiBvConcInvWasSetByUser = true;
3477
  Trace("options") << "user assigned option cegqiBvConcInv = " << value << std::endl;
3478
}
3479
3480
82
void assign_quantifiers_cegqiBvIneqMode(Options& opts, const std::string& option, const std::string& optionarg) {
3481
82
  auto value = stringToCegqiBvIneqMode(optionarg);
3482
3483
82
  opts.quantifiers.cegqiBvIneqMode = value;
3484
82
  opts.quantifiers.cegqiBvIneqModeWasSetByUser = true;
3485
82
  Trace("options") << "user assigned option cegqiBvIneqMode = " << value << std::endl;
3486
82
}
3487
3488
void assign_quantifiers_cegqiBvInterleaveValue(Options& opts, const std::string& option, bool value) {
3489
3490
  opts.quantifiers.cegqiBvInterleaveValue = value;
3491
  opts.quantifiers.cegqiBvInterleaveValueWasSetByUser = true;
3492
  Trace("options") << "user assigned option cegqiBvInterleaveValue = " << value << std::endl;
3493
}
3494
3495
void assign_quantifiers_cegqiBvLinearize(Options& opts, const std::string& option, bool value) {
3496
3497
  opts.quantifiers.cegqiBvLinearize = value;
3498
  opts.quantifiers.cegqiBvLinearizeWasSetByUser = true;
3499
  Trace("options") << "user assigned option cegqiBvLinearize = " << value << std::endl;
3500
}
3501
3502
2
void assign_quantifiers_cegqiBvRmExtract(Options& opts, const std::string& option, bool value) {
3503
3504
2
  opts.quantifiers.cegqiBvRmExtract = value;
3505
2
  opts.quantifiers.cegqiBvRmExtractWasSetByUser = true;
3506
2
  Trace("options") << "user assigned option cegqiBvRmExtract = " << value << std::endl;
3507
2
}
3508
3509
void assign_quantifiers_cegqiBvSolveNl(Options& opts, const std::string& option, bool value) {
3510
3511
  opts.quantifiers.cegqiBvSolveNl = value;
3512
  opts.quantifiers.cegqiBvSolveNlWasSetByUser = true;
3513
  Trace("options") << "user assigned option cegqiBvSolveNl = " << value << std::endl;
3514
}
3515
3516
599
void assign_quantifiers_cegqiFullEffort(Options& opts, const std::string& option, bool value) {
3517
3518
599
  opts.quantifiers.cegqiFullEffort = value;
3519
599
  opts.quantifiers.cegqiFullEffortWasSetByUser = true;
3520
599
  Trace("options") << "user assigned option cegqiFullEffort = " << value << std::endl;
3521
599
}
3522
3523
void assign_quantifiers_cegqiInnermost(Options& opts, const std::string& option, bool value) {
3524
3525
  opts.quantifiers.cegqiInnermost = value;
3526
  opts.quantifiers.cegqiInnermostWasSetByUser = true;
3527
  Trace("options") << "user assigned option cegqiInnermost = " << value << std::endl;
3528
}
3529
3530
void assign_quantifiers_cegqiMidpoint(Options& opts, const std::string& option, bool value) {
3531
3532
  opts.quantifiers.cegqiMidpoint = value;
3533
  opts.quantifiers.cegqiMidpointWasSetByUser = true;
3534
  Trace("options") << "user assigned option cegqiMidpoint = " << value << std::endl;
3535
}
3536
3537
void assign_quantifiers_cegqiMinBounds(Options& opts, const std::string& option, bool value) {
3538
3539
  opts.quantifiers.cegqiMinBounds = value;
3540
  opts.quantifiers.cegqiMinBoundsWasSetByUser = true;
3541
  Trace("options") << "user assigned option cegqiMinBounds = " << value << std::endl;
3542
}
3543
3544
void assign_quantifiers_cegqiModel(Options& opts, const std::string& option, bool value) {
3545
3546
  opts.quantifiers.cegqiModel = value;
3547
  opts.quantifiers.cegqiModelWasSetByUser = true;
3548
  Trace("options") << "user assigned option cegqiModel = " << value << std::endl;
3549
}
3550
3551
3
void assign_quantifiers_cegqiMultiInst(Options& opts, const std::string& option, bool value) {
3552
3553
3
  opts.quantifiers.cegqiMultiInst = value;
3554
3
  opts.quantifiers.cegqiMultiInstWasSetByUser = true;
3555
3
  Trace("options") << "user assigned option cegqiMultiInst = " << value << std::endl;
3556
3
}
3557
3558
19
void assign_quantifiers_cegqiNestedQE(Options& opts, const std::string& option, bool value) {
3559
3560
19
  opts.quantifiers.cegqiNestedQE = value;
3561
19
  opts.quantifiers.cegqiNestedQEWasSetByUser = true;
3562
19
  Trace("options") << "user assigned option cegqiNestedQE = " << value << std::endl;
3563
19
}
3564
3565
void assign_quantifiers_cegqiNopt(Options& opts, const std::string& option, bool value) {
3566
3567
  opts.quantifiers.cegqiNopt = value;
3568
  opts.quantifiers.cegqiNoptWasSetByUser = true;
3569
  Trace("options") << "user assigned option cegqiNopt = " << value << std::endl;
3570
}
3571
3572
void assign_quantifiers_cegqiRepeatLit(Options& opts, const std::string& option, bool value) {
3573
3574
  opts.quantifiers.cegqiRepeatLit = value;
3575
  opts.quantifiers.cegqiRepeatLitWasSetByUser = true;
3576
  Trace("options") << "user assigned option cegqiRepeatLit = " << value << std::endl;
3577
}
3578
3579
void assign_quantifiers_cegqiRoundUpLowerLia(Options& opts, const std::string& option, bool value) {
3580
3581
  opts.quantifiers.cegqiRoundUpLowerLia = value;
3582
  opts.quantifiers.cegqiRoundUpLowerLiaWasSetByUser = true;
3583
  Trace("options") << "user assigned option cegqiRoundUpLowerLia = " << value << std::endl;
3584
}
3585
3586
void assign_quantifiers_cegqiSat(Options& opts, const std::string& option, bool value) {
3587
3588
  opts.quantifiers.cegqiSat = value;
3589
  opts.quantifiers.cegqiSatWasSetByUser = true;
3590
  Trace("options") << "user assigned option cegqiSat = " << value << std::endl;
3591
}
3592
3593
6
void assign_quantifiers_cegqiUseInfInt(Options& opts, const std::string& option, bool value) {
3594
3595
6
  opts.quantifiers.cegqiUseInfInt = value;
3596
6
  opts.quantifiers.cegqiUseInfIntWasSetByUser = true;
3597
6
  Trace("options") << "user assigned option cegqiUseInfInt = " << value << std::endl;
3598
6
}
3599
3600
6
void assign_quantifiers_cegqiUseInfReal(Options& opts, const std::string& option, bool value) {
3601
3602
6
  opts.quantifiers.cegqiUseInfReal = value;
3603
6
  opts.quantifiers.cegqiUseInfRealWasSetByUser = true;
3604
6
  Trace("options") << "user assigned option cegqiUseInfReal = " << value << std::endl;
3605
6
}
3606
3607
void assign_quantifiers_condVarSplitQuantAgg(Options& opts, const std::string& option, bool value) {
3608
3609
  opts.quantifiers.condVarSplitQuantAgg = value;
3610
  opts.quantifiers.condVarSplitQuantAggWasSetByUser = true;
3611
  Trace("options") << "user assigned option condVarSplitQuantAgg = " << value << std::endl;
3612
}
3613
3614
void assign_quantifiers_condVarSplitQuant(Options& opts, const std::string& option, bool value) {
3615
3616
  opts.quantifiers.condVarSplitQuant = value;
3617
  opts.quantifiers.condVarSplitQuantWasSetByUser = true;
3618
  Trace("options") << "user assigned option condVarSplitQuant = " << value << std::endl;
3619
}
3620
3621
void assign_quantifiers_conjectureFilterActiveTerms(Options& opts, const std::string& option, bool value) {
3622
3623
  opts.quantifiers.conjectureFilterActiveTerms = value;
3624
  opts.quantifiers.conjectureFilterActiveTermsWasSetByUser = true;
3625
  Trace("options") << "user assigned option conjectureFilterActiveTerms = " << value << std::endl;
3626
}
3627
3628
void assign_quantifiers_conjectureFilterCanonical(Options& opts, const std::string& option, bool value) {
3629
3630
  opts.quantifiers.conjectureFilterCanonical = value;
3631
  opts.quantifiers.conjectureFilterCanonicalWasSetByUser = true;
3632
  Trace("options") << "user assigned option conjectureFilterCanonical = " << value << std::endl;
3633
}
3634
3635
2
void assign_quantifiers_conjectureFilterModel(Options& opts, const std::string& option, bool value) {
3636
3637
2
  opts.quantifiers.conjectureFilterModel = value;
3638
2
  opts.quantifiers.conjectureFilterModelWasSetByUser = true;
3639
2
  Trace("options") << "user assigned option conjectureFilterModel = " << value << std::endl;
3640
2
}
3641
3642
7
void assign_quantifiers_conjectureGen(Options& opts, const std::string& option, bool value) {
3643
3644
7
  opts.quantifiers.conjectureGen = value;
3645
7
  opts.quantifiers.conjectureGenWasSetByUser = true;
3646
7
  Trace("options") << "user assigned option conjectureGen = " << value << std::endl;
3647
7
}
3648
3649
void assign_quantifiers_conjectureGenGtEnum(Options& opts, const std::string& option, const std::string& optionarg) {
3650
  auto value = handleOption<int64_t>("conjecture-gen-gt-enum", option, optionarg);
3651
3652
  opts.quantifiers.conjectureGenGtEnum = value;
3653
  opts.quantifiers.conjectureGenGtEnumWasSetByUser = true;
3654
  Trace("options") << "user assigned option conjectureGenGtEnum = " << value << std::endl;
3655
}
3656
3657
void assign_quantifiers_conjectureGenMaxDepth(Options& opts, const std::string& option, const std::string& optionarg) {
3658
  auto value = handleOption<int64_t>("conjecture-gen-max-depth", option, optionarg);
3659
3660
  opts.quantifiers.conjectureGenMaxDepth = value;
3661
  opts.quantifiers.conjectureGenMaxDepthWasSetByUser = true;
3662
  Trace("options") << "user assigned option conjectureGenMaxDepth = " << value << std::endl;
3663
}
3664
3665
void assign_quantifiers_conjectureGenPerRound(Options& opts, const std::string& option, const std::string& optionarg) {
3666
  auto value = handleOption<int64_t>("conjecture-gen-per-round", option, optionarg);
3667
3668
  opts.quantifiers.conjectureGenPerRound = value;
3669
  opts.quantifiers.conjectureGenPerRoundWasSetByUser = true;
3670
  Trace("options") << "user assigned option conjectureGenPerRound = " << value << std::endl;
3671
}
3672
3673
void assign_quantifiers_conjectureUeeIntro(Options& opts, const std::string& option, bool value) {
3674
3675
  opts.quantifiers.conjectureUeeIntro = value;
3676
  opts.quantifiers.conjectureUeeIntroWasSetByUser = true;
3677
  Trace("options") << "user assigned option conjectureUeeIntro = " << value << std::endl;
3678
}
3679
3680
2
void assign_quantifiers_conjectureNoFilter(Options& opts, const std::string& option, bool value) {
3681
3682
2
  opts.quantifiers.conjectureNoFilter = value;
3683
2
  opts.quantifiers.conjectureNoFilterWasSetByUser = true;
3684
2
  Trace("options") << "user assigned option conjectureNoFilter = " << value << std::endl;
3685
2
}
3686
3687
void assign_quantifiers_dtStcInduction(Options& opts, const std::string& option, bool value) {
3688
3689
  opts.quantifiers.dtStcInduction = value;
3690
  opts.quantifiers.dtStcInductionWasSetByUser = true;
3691
  Trace("options") << "user assigned option dtStcInduction = " << value << std::endl;
3692
}
3693
3694
void assign_quantifiers_dtVarExpandQuant(Options& opts, const std::string& option, bool value) {
3695
3696
  opts.quantifiers.dtVarExpandQuant = value;
3697
  opts.quantifiers.dtVarExpandQuantWasSetByUser = true;
3698
  Trace("options") << "user assigned option dtVarExpandQuant = " << value << std::endl;
3699
}
3700
3701
1
void assign_quantifiers_eMatching(Options& opts, const std::string& option, bool value) {
3702
3703
1
  opts.quantifiers.eMatching = value;
3704
1
  opts.quantifiers.eMatchingWasSetByUser = true;
3705
1
  Trace("options") << "user assigned option eMatching = " << value << std::endl;
3706
1
}
3707
3708
void assign_quantifiers_elimTautQuant(Options& opts, const std::string& option, bool value) {
3709
3710
  opts.quantifiers.elimTautQuant = value;
3711
  opts.quantifiers.elimTautQuantWasSetByUser = true;
3712
  Trace("options") << "user assigned option elimTautQuant = " << value << std::endl;
3713
}
3714
3715
11
void assign_quantifiers_extRewriteQuant(Options& opts, const std::string& option, bool value) {
3716
3717
11
  opts.quantifiers.extRewriteQuant = value;
3718
11
  opts.quantifiers.extRewriteQuantWasSetByUser = true;
3719
11
  Trace("options") << "user assigned option extRewriteQuant = " << value << std::endl;
3720
11
}
3721
3722
176
void assign_quantifiers_finiteModelFind(Options& opts, const std::string& option, bool value) {
3723
3724
176
  opts.quantifiers.finiteModelFind = value;
3725
176
  opts.quantifiers.finiteModelFindWasSetByUser = true;
3726
176
  Trace("options") << "user assigned option finiteModelFind = " << value << std::endl;
3727
176
}
3728
3729
44
void assign_quantifiers_fmfBound(Options& opts, const std::string& option, bool value) {
3730
3731
44
  opts.quantifiers.fmfBound = value;
3732
44
  opts.quantifiers.fmfBoundWasSetByUser = true;
3733
44
  Trace("options") << "user assigned option fmfBound = " << value << std::endl;
3734
44
}
3735
3736
12
void assign_quantifiers_fmfBoundInt(Options& opts, const std::string& option, bool value) {
3737
3738
12
  opts.quantifiers.fmfBoundInt = value;
3739
12
  opts.quantifiers.fmfBoundIntWasSetByUser = true;
3740
12
  Trace("options") << "user assigned option fmfBoundInt = " << value << std::endl;
3741
12
}
3742
3743
3
void assign_quantifiers_fmfBoundLazy(Options& opts, const std::string& option, bool value) {
3744
3745
3
  opts.quantifiers.fmfBoundLazy = value;
3746
3
  opts.quantifiers.fmfBoundLazyWasSetByUser = true;
3747
3
  Trace("options") << "user assigned option fmfBoundLazy = " << value << std::endl;
3748
3
}
3749
3750
void assign_quantifiers_fmfFmcSimple(Options& opts, const std::string& option, bool value) {
3751
3752
  opts.quantifiers.fmfFmcSimple = value;
3753
  opts.quantifiers.fmfFmcSimpleWasSetByUser = true;
3754
  Trace("options") << "user assigned option fmfFmcSimple = " << value << std::endl;
3755
}
3756
3757
void assign_quantifiers_fmfFreshDistConst(Options& opts, const std::string& option, bool value) {
3758
3759
  opts.quantifiers.fmfFreshDistConst = value;
3760
  opts.quantifiers.fmfFreshDistConstWasSetByUser = true;
3761
  Trace("options") << "user assigned option fmfFreshDistConst = " << value << std::endl;
3762
}
3763
3764
51
void assign_quantifiers_fmfFunWellDefined(Options& opts, const std::string& option, bool value) {
3765
3766
51
  opts.quantifiers.fmfFunWellDefined = value;
3767
51
  opts.quantifiers.fmfFunWellDefinedWasSetByUser = true;
3768
51
  Trace("options") << "user assigned option fmfFunWellDefined = " << value << std::endl;
3769
51
}
3770
3771
10
void assign_quantifiers_fmfFunWellDefinedRelevant(Options& opts, const std::string& option, bool value) {
3772
3773
10
  opts.quantifiers.fmfFunWellDefinedRelevant = value;
3774
10
  opts.quantifiers.fmfFunWellDefinedRelevantWasSetByUser = true;
3775
10
  Trace("options") << "user assigned option fmfFunWellDefinedRelevant = " << value << std::endl;
3776
10
}
3777
3778
7
void assign_quantifiers_fmfInstEngine(Options& opts, const std::string& option, bool value) {
3779
3780
7
  opts.quantifiers.fmfInstEngine = value;
3781
7
  opts.quantifiers.fmfInstEngineWasSetByUser = true;
3782
7
  Trace("options") << "user assigned option fmfInstEngine = " << value << std::endl;
3783
7
}
3784
3785
void assign_quantifiers_fmfTypeCompletionThresh(Options& opts, const std::string& option, const std::string& optionarg) {
3786
  auto value = handleOption<int64_t>("fmf-type-completion-thresh", option, optionarg);
3787
3788
  opts.quantifiers.fmfTypeCompletionThresh = value;
3789
  opts.quantifiers.fmfTypeCompletionThreshWasSetByUser = true;
3790
  Trace("options") << "user assigned option fmfTypeCompletionThresh = " << value << std::endl;
3791
}
3792
3793
void assign_quantifiers_fullSaturateInterleave(Options& opts, const std::string& option, bool value) {
3794
3795
  opts.quantifiers.fullSaturateInterleave = value;
3796
  opts.quantifiers.fullSaturateInterleaveWasSetByUser = true;
3797
  Trace("options") << "user assigned option fullSaturateInterleave = " << value << std::endl;
3798
}
3799
3800
3
void assign_quantifiers_fullSaturateStratify(Options& opts, const std::string& option, bool value) {
3801
3802
3
  opts.quantifiers.fullSaturateStratify = value;
3803
3
  opts.quantifiers.fullSaturateStratifyWasSetByUser = true;
3804
3
  Trace("options") << "user assigned option fullSaturateStratify = " << value << std::endl;
3805
3
}
3806
3807
void assign_quantifiers_fullSaturateSum(Options& opts, const std::string& option, bool value) {
3808
3809
  opts.quantifiers.fullSaturateSum = value;
3810
  opts.quantifiers.fullSaturateSumWasSetByUser = true;
3811
  Trace("options") << "user assigned option fullSaturateSum = " << value << std::endl;
3812
}
3813
3814
76
void assign_quantifiers_fullSaturateQuant(Options& opts, const std::string& option, bool value) {
3815
3816
76
  opts.quantifiers.fullSaturateQuant = value;
3817
76
  opts.quantifiers.fullSaturateQuantWasSetByUser = true;
3818
76
  Trace("options") << "user assigned option fullSaturateQuant = " << value << std::endl;
3819
76
}
3820
3821
3
void assign_quantifiers_fullSaturateLimit(Options& opts, const std::string& option, const std::string& optionarg) {
3822
3
  auto value = handleOption<int64_t>("full-saturate-quant-limit", option, optionarg);
3823
3824
3
  opts.quantifiers.fullSaturateLimit = value;
3825
3
  opts.quantifiers.fullSaturateLimitWasSetByUser = true;
3826
3
  Trace("options") << "user assigned option fullSaturateLimit = " << value << std::endl;
3827
3
}
3828
3829
void assign_quantifiers_fullSaturateQuantRd(Options& opts, const std::string& option, bool value) {
3830
3831
  opts.quantifiers.fullSaturateQuantRd = value;
3832
  opts.quantifiers.fullSaturateQuantRdWasSetByUser = true;
3833
  Trace("options") << "user assigned option fullSaturateQuantRd = " << value << std::endl;
3834
}
3835
3836
8
void assign_quantifiers_globalNegate(Options& opts, const std::string& option, bool value) {
3837
3838
8
  opts.quantifiers.globalNegate = value;
3839
8
  opts.quantifiers.globalNegateWasSetByUser = true;
3840
8
  Trace("options") << "user assigned option globalNegate = " << value << std::endl;
3841
8
}
3842
3843
8
void assign_quantifiers_hoElim(Options& opts, const std::string& option, bool value) {
3844
3845
8
  opts.quantifiers.hoElim = value;
3846
8
  opts.quantifiers.hoElimWasSetByUser = true;
3847
8
  Trace("options") << "user assigned option hoElim = " << value << std::endl;
3848
8
}
3849
3850
1
void assign_quantifiers_hoElimStoreAx(Options& opts, const std::string& option, bool value) {
3851
3852
1
  opts.quantifiers.hoElimStoreAx = value;
3853
1
  opts.quantifiers.hoElimStoreAxWasSetByUser = true;
3854
1
  Trace("options") << "user assigned option hoElimStoreAx = " << value << std::endl;
3855
1
}
3856
3857
void assign_quantifiers_hoMatching(Options& opts, const std::string& option, bool value) {
3858
3859
  opts.quantifiers.hoMatching = value;
3860
  opts.quantifiers.hoMatchingWasSetByUser = true;
3861
  Trace("options") << "user assigned option hoMatching = " << value << std::endl;
3862
}
3863
3864
void assign_quantifiers_hoMatchingVarArgPriority(Options& opts, const std::string& option, bool value) {
3865
3866
  opts.quantifiers.hoMatchingVarArgPriority = value;
3867
  opts.quantifiers.hoMatchingVarArgPriorityWasSetByUser = true;
3868
  Trace("options") << "user assigned option hoMatchingVarArgPriority = " << value << std::endl;
3869
}
3870
3871
void assign_quantifiers_hoMergeTermDb(Options& opts, const std::string& option, bool value) {
3872
3873
  opts.quantifiers.hoMergeTermDb = value;
3874
  opts.quantifiers.hoMergeTermDbWasSetByUser = true;
3875
  Trace("options") << "user assigned option hoMergeTermDb = " << value << std::endl;
3876
}
3877
3878
void assign_quantifiers_incrementTriggers(Options& opts, const std::string& option, bool value) {
3879
3880
  opts.quantifiers.incrementTriggers = value;
3881
  opts.quantifiers.incrementTriggersWasSetByUser = true;
3882
  Trace("options") << "user assigned option incrementTriggers = " << value << std::endl;
3883
}
3884
3885
void assign_quantifiers_instLevelInputOnly(Options& opts, const std::string& option, bool value) {
3886
3887
  opts.quantifiers.instLevelInputOnly = value;
3888
  opts.quantifiers.instLevelInputOnlyWasSetByUser = true;
3889
  Trace("options") << "user assigned option instLevelInputOnly = " << value << std::endl;
3890
}
3891
3892
3
void assign_quantifiers_instMaxLevel(Options& opts, const std::string& option, const std::string& optionarg) {
3893
3
  auto value = handleOption<int64_t>("inst-max-level", option, optionarg);
3894
3895
3
  opts.quantifiers.instMaxLevel = value;
3896
3
  opts.quantifiers.instMaxLevelWasSetByUser = true;
3897
3
  Trace("options") << "user assigned option instMaxLevel = " << value << std::endl;
3898
3
}
3899
3900
void assign_quantifiers_instMaxRounds(Options& opts, const std::string& option, const std::string& optionarg) {
3901
  auto value = handleOption<int64_t>("inst-max-rounds", option, optionarg);
3902
3903
  opts.quantifiers.instMaxRounds = value;
3904
  opts.quantifiers.instMaxRoundsWasSetByUser = true;
3905
  Trace("options") << "user assigned option instMaxRounds = " << value << std::endl;
3906
}
3907
3908
void assign_quantifiers_instNoEntail(Options& opts, const std::string& option, bool value) {
3909
3910
  opts.quantifiers.instNoEntail = value;
3911
  opts.quantifiers.instNoEntailWasSetByUser = true;
3912
  Trace("options") << "user assigned option instNoEntail = " << value << std::endl;
3913
}
3914
3915
void assign_quantifiers_instWhenPhase(Options& opts, const std::string& option, const std::string& optionarg) {
3916
  auto value = handleOption<int64_t>("inst-when-phase", option, optionarg);
3917
3918
  opts.quantifiers.instWhenPhase = value;
3919
  opts.quantifiers.instWhenPhaseWasSetByUser = true;
3920
  Trace("options") << "user assigned option instWhenPhase = " << value << std::endl;
3921
}
3922
3923
void assign_quantifiers_instWhenStrictInterleave(Options& opts, const std::string& option, bool value) {
3924
3925
  opts.quantifiers.instWhenStrictInterleave = value;
3926
  opts.quantifiers.instWhenStrictInterleaveWasSetByUser = true;
3927
  Trace("options") << "user assigned option instWhenStrictInterleave = " << value << std::endl;
3928
}
3929
3930
void assign_quantifiers_instWhenTcFirst(Options& opts, const std::string& option, bool value) {
3931
3932
  opts.quantifiers.instWhenTcFirst = value;
3933
  opts.quantifiers.instWhenTcFirstWasSetByUser = true;
3934
  Trace("options") << "user assigned option instWhenTcFirst = " << value << std::endl;
3935
}
3936
3937
3
void assign_quantifiers_instWhenMode(Options& opts, const std::string& option, const std::string& optionarg) {
3938
3
  auto value = stringToInstWhenMode(optionarg);
3939
3
  opts.handler().checkInstWhenMode("inst-when", option, value);
3940
3
  opts.quantifiers.instWhenMode = value;
3941
3
  opts.quantifiers.instWhenModeWasSetByUser = true;
3942
3
  Trace("options") << "user assigned option instWhenMode = " << value << std::endl;
3943
3
}
3944
3945
5
void assign_quantifiers_intWfInduction(Options& opts, const std::string& option, bool value) {
3946
3947
5
  opts.quantifiers.intWfInduction = value;
3948
5
  opts.quantifiers.intWfInductionWasSetByUser = true;
3949
5
  Trace("options") << "user assigned option intWfInduction = " << value << std::endl;
3950
5
}
3951
3952
void assign_quantifiers_iteDtTesterSplitQuant(Options& opts, const std::string& option, bool value) {
3953
3954
  opts.quantifiers.iteDtTesterSplitQuant = value;
3955
  opts.quantifiers.iteDtTesterSplitQuantWasSetByUser = true;
3956
  Trace("options") << "user assigned option iteDtTesterSplitQuant = " << value << std::endl;
3957
}
3958
3959
void assign_quantifiers_iteLiftQuant(Options& opts, const std::string& option, const std::string& optionarg) {
3960
  auto value = stringToIteLiftQuantMode(optionarg);
3961
3962
  opts.quantifiers.iteLiftQuant = value;
3963
  opts.quantifiers.iteLiftQuantWasSetByUser = true;
3964
  Trace("options") << "user assigned option iteLiftQuant = " << value << std::endl;
3965
}
3966
3967
void assign_quantifiers_literalMatchMode(Options& opts, const std::string& option, const std::string& optionarg) {
3968
  auto value = stringToLiteralMatchMode(optionarg);
3969
3970
  opts.quantifiers.literalMatchMode = value;
3971
  opts.quantifiers.literalMatchModeWasSetByUser = true;
3972
  Trace("options") << "user assigned option literalMatchMode = " << value << std::endl;
3973
}
3974
3975
17
void assign_quantifiers_macrosQuant(Options& opts, const std::string& option, bool value) {
3976
3977
17
  opts.quantifiers.macrosQuant = value;
3978
17
  opts.quantifiers.macrosQuantWasSetByUser = true;
3979
17
  Trace("options") << "user assigned option macrosQuant = " << value << std::endl;
3980
17
}
3981
3982
2
void assign_quantifiers_macrosQuantMode(Options& opts, const std::string& option, const std::string& optionarg) {
3983
2
  auto value = stringToMacrosQuantMode(optionarg);
3984
3985
2
  opts.quantifiers.macrosQuantMode = value;
3986
2
  opts.quantifiers.macrosQuantModeWasSetByUser = true;
3987
2
  Trace("options") << "user assigned option macrosQuantMode = " << value << std::endl;
3988
2
}
3989
3990
void assign_quantifiers_mbqiInterleave(Options& opts, const std::string& option, bool value) {
3991
3992
  opts.quantifiers.mbqiInterleave = value;
3993
  opts.quantifiers.mbqiInterleaveWasSetByUser = true;
3994
  Trace("options") << "user assigned option mbqiInterleave = " << value << std::endl;
3995
}
3996
3997
void assign_quantifiers_fmfOneInstPerRound(Options& opts, const std::string& option, bool value) {
3998
3999
  opts.quantifiers.fmfOneInstPerRound = value;
4000
  opts.quantifiers.fmfOneInstPerRoundWasSetByUser = true;
4001
  Trace("options") << "user assigned option fmfOneInstPerRound = " << value << std::endl;
4002
}
4003
4004
void assign_quantifiers_mbqiMode(Options& opts, const std::string& option, const std::string& optionarg) {
4005
  auto value = stringToMbqiMode(optionarg);
4006
4007
  opts.quantifiers.mbqiMode = value;
4008
  opts.quantifiers.mbqiModeWasSetByUser = true;
4009
  Trace("options") << "user assigned option mbqiMode = " << value << std::endl;
4010
}
4011
4012
116
void assign_quantifiers_miniscopeQuant(Options& opts, const std::string& option, bool value) {
4013
4014
116
  opts.quantifiers.miniscopeQuant = value;
4015
116
  opts.quantifiers.miniscopeQuantWasSetByUser = true;
4016
116
  Trace("options") << "user assigned option miniscopeQuant = " << value << std::endl;
4017
116
}
4018
4019
114
void assign_quantifiers_miniscopeQuantFreeVar(Options& opts, const std::string& option, bool value) {
4020
4021
114
  opts.quantifiers.miniscopeQuantFreeVar = value;
4022
114
  opts.quantifiers.miniscopeQuantFreeVarWasSetByUser = true;
4023
114
  Trace("options") << "user assigned option miniscopeQuantFreeVar = " << value << std::endl;
4024
114
}
4025
4026
3
void assign_quantifiers_multiTriggerCache(Options& opts, const std::string& option, bool value) {
4027
4028
3
  opts.quantifiers.multiTriggerCache = value;
4029
3
  opts.quantifiers.multiTriggerCacheWasSetByUser = true;
4030
3
  Trace("options") << "user assigned option multiTriggerCache = " << value << std::endl;
4031
3
}
4032
4033
void assign_quantifiers_multiTriggerLinear(Options& opts, const std::string& option, bool value) {
4034
4035
  opts.quantifiers.multiTriggerLinear = value;
4036
  opts.quantifiers.multiTriggerLinearWasSetByUser = true;
4037
  Trace("options") << "user assigned option multiTriggerLinear = " << value << std::endl;
4038
}
4039
4040
void assign_quantifiers_multiTriggerPriority(Options& opts, const std::string& option, bool value) {
4041
4042
  opts.quantifiers.multiTriggerPriority = value;
4043
  opts.quantifiers.multiTriggerPriorityWasSetByUser = true;
4044
  Trace("options") << "user assigned option multiTriggerPriority = " << value << std::endl;
4045
}
4046
4047
void assign_quantifiers_multiTriggerWhenSingle(Options& opts, const std::string& option, bool value) {
4048
4049
  opts.quantifiers.multiTriggerWhenSingle = value;
4050
  opts.quantifiers.multiTriggerWhenSingleWasSetByUser = true;
4051
  Trace("options") << "user assigned option multiTriggerWhenSingle = " << value << std::endl;
4052
}
4053
4054
3
void assign_quantifiers_partialTriggers(Options& opts, const std::string& option, bool value) {
4055
4056
3
  opts.quantifiers.partialTriggers = value;
4057
3
  opts.quantifiers.partialTriggersWasSetByUser = true;
4058
3
  Trace("options") << "user assigned option partialTriggers = " << value << std::endl;
4059
3
}
4060
4061
3
void assign_quantifiers_poolInst(Options& opts, const std::string& option, bool value) {
4062
4063
3
  opts.quantifiers.poolInst = value;
4064
3
  opts.quantifiers.poolInstWasSetByUser = true;
4065
3
  Trace("options") << "user assigned option poolInst = " << value << std::endl;
4066
3
}
4067
4068
2
void assign_quantifiers_preSkolemQuant(Options& opts, const std::string& option, bool value) {
4069
4070
2
  opts.quantifiers.preSkolemQuant = value;
4071
2
  opts.quantifiers.preSkolemQuantWasSetByUser = true;
4072
2
  Trace("options") << "user assigned option preSkolemQuant = " << value << std::endl;
4073
2
}
4074
4075
void assign_quantifiers_preSkolemQuantAgg(Options& opts, const std::string& option, bool value) {
4076
4077
  opts.quantifiers.preSkolemQuantAgg = value;
4078
  opts.quantifiers.preSkolemQuantAggWasSetByUser = true;
4079
  Trace("options") << "user assigned option preSkolemQuantAgg = " << value << std::endl;
4080
}
4081
4082
2
void assign_quantifiers_preSkolemQuantNested(Options& opts, const std::string& option, bool value) {
4083
4084
2
  opts.quantifiers.preSkolemQuantNested = value;
4085
2
  opts.quantifiers.preSkolemQuantNestedWasSetByUser = true;
4086
2
  Trace("options") << "user assigned option preSkolemQuantNested = " << value << std::endl;
4087
2
}
4088
4089
void assign_quantifiers_prenexQuantUser(Options& opts, const std::string& option, bool value) {
4090
4091
  opts.quantifiers.prenexQuantUser = value;
4092
  opts.quantifiers.prenexQuantUserWasSetByUser = true;
4093
  Trace("options") << "user assigned option prenexQuantUser = " << value << std::endl;
4094
}
4095
4096
void assign_quantifiers_prenexQuant(Options& opts, const std::string& option, const std::string& optionarg) {
4097
  auto value = stringToPrenexQuantMode(optionarg);
4098
4099
  opts.quantifiers.prenexQuant = value;
4100
  opts.quantifiers.prenexQuantWasSetByUser = true;
4101
  Trace("options") << "user assigned option prenexQuant = " << value << std::endl;
4102
}
4103
4104
3
void assign_quantifiers_purifyTriggers(Options& opts, const std::string& option, bool value) {
4105
4106
3
  opts.quantifiers.purifyTriggers = value;
4107
3
  opts.quantifiers.purifyTriggersWasSetByUser = true;
4108
3
  Trace("options") << "user assigned option purifyTriggers = " << value << std::endl;
4109
3
}
4110
4111
void assign_quantifiers_qcfAllConflict(Options& opts, const std::string& option, bool value) {
4112
4113
  opts.quantifiers.qcfAllConflict = value;
4114
  opts.quantifiers.qcfAllConflictWasSetByUser = true;
4115
  Trace("options") << "user assigned option qcfAllConflict = " << value << std::endl;
4116
}
4117
4118
void assign_quantifiers_qcfEagerCheckRd(Options& opts, const std::string& option, bool value) {
4119
4120
  opts.quantifiers.qcfEagerCheckRd = value;
4121
  opts.quantifiers.qcfEagerCheckRdWasSetByUser = true;
4122
  Trace("options") << "user assigned option qcfEagerCheckRd = " << value << std::endl;
4123
}
4124
4125
void assign_quantifiers_qcfEagerTest(Options& opts, const std::string& option, bool value) {
4126
4127
  opts.quantifiers.qcfEagerTest = value;
4128
  opts.quantifiers.qcfEagerTestWasSetByUser = true;
4129
  Trace("options") << "user assigned option qcfEagerTest = " << value << std::endl;
4130
}
4131
4132
void assign_quantifiers_qcfNestedConflict(Options& opts, const std::string& option, bool value) {
4133
4134
  opts.quantifiers.qcfNestedConflict = value;
4135
  opts.quantifiers.qcfNestedConflictWasSetByUser = true;
4136
  Trace("options") << "user assigned option qcfNestedConflict = " << value << std::endl;
4137
}
4138
4139
void assign_quantifiers_qcfSkipRd(Options& opts, const std::string& option, bool value) {
4140
4141
  opts.quantifiers.qcfSkipRd = value;
4142
  opts.quantifiers.qcfSkipRdWasSetByUser = true;
4143
  Trace("options") << "user assigned option qcfSkipRd = " << value << std::endl;
4144
}
4145
4146
6
void assign_quantifiers_qcfTConstraint(Options& opts, const std::string& option, bool value) {
4147
4148
6
  opts.quantifiers.qcfTConstraint = value;
4149
6
  opts.quantifiers.qcfTConstraintWasSetByUser = true;
4150
6
  Trace("options") << "user assigned option qcfTConstraint = " << value << std::endl;
4151
6
}
4152
4153
void assign_quantifiers_qcfVoExp(Options& opts, const std::string& option, bool value) {
4154
4155
  opts.quantifiers.qcfVoExp = value;
4156
  opts.quantifiers.qcfVoExpWasSetByUser = true;
4157
  Trace("options") << "user assigned option qcfVoExp = " << value << std::endl;
4158
}
4159
4160
void assign_quantifiers_quantAlphaEquiv(Options& opts, const std::string& option, bool value) {
4161
4162
  opts.quantifiers.quantAlphaEquiv = value;
4163
  opts.quantifiers.quantAlphaEquivWasSetByUser = true;
4164
  Trace("options") << "user assigned option quantAlphaEquiv = " << value << std::endl;
4165
}
4166
4167
void assign_quantifiers_quantConflictFind(Options& opts, const std::string& option, bool value) {
4168
4169
  opts.quantifiers.quantConflictFind = value;
4170
  opts.quantifiers.quantConflictFindWasSetByUser = true;
4171
  Trace("options") << "user assigned option quantConflictFind = " << value << std::endl;
4172
}
4173
4174
void assign_quantifiers_qcfMode(Options& opts, const std::string& option, const std::string& optionarg) {
4175
  auto value = stringToQcfMode(optionarg);
4176
4177
  opts.quantifiers.qcfMode = value;
4178
  opts.quantifiers.qcfModeWasSetByUser = true;
4179
  Trace("options") << "user assigned option qcfMode = " << value << std::endl;
4180
}
4181
4182
void assign_quantifiers_qcfWhenMode(Options& opts, const std::string& option, const std::string& optionarg) {
4183
  auto value = stringToQcfWhenMode(optionarg);
4184
4185
  opts.quantifiers.qcfWhenMode = value;
4186
  opts.quantifiers.qcfWhenModeWasSetByUser = true;
4187
  Trace("options") << "user assigned option qcfWhenMode = " << value << std::endl;
4188
}
4189
4190
void assign_quantifiers_quantDynamicSplit(Options& opts, const std::string& option, const std::string& optionarg) {
4191
  auto value = stringToQuantDSplitMode(optionarg);
4192
4193
  opts.quantifiers.quantDynamicSplit = value;
4194
  opts.quantifiers.quantDynamicSplitWasSetByUser = true;
4195
  Trace("options") << "user assigned option quantDynamicSplit = " << value << std::endl;
4196
}
4197
4198
void assign_quantifiers_quantFunWellDefined(Options& opts, const std::string& option, bool value) {
4199
4200
  opts.quantifiers.quantFunWellDefined = value;
4201
  opts.quantifiers.quantFunWellDefinedWasSetByUser = true;
4202
  Trace("options") << "user assigned option quantFunWellDefined = " << value << std::endl;
4203
}
4204
4205
8
void assign_quantifiers_quantInduction(Options& opts, const std::string& option, bool value) {
4206
4207
8
  opts.quantifiers.quantInduction = value;
4208
8
  opts.quantifiers.quantInductionWasSetByUser = true;
4209
8
  Trace("options") << "user assigned option quantInduction = " << value << std::endl;
4210
8
}
4211
4212
void assign_quantifiers_quantRepMode(Options& opts, const std::string& option, const std::string& optionarg) {
4213
  auto value = stringToQuantRepMode(optionarg);
4214
4215
  opts.quantifiers.quantRepMode = value;
4216
  opts.quantifiers.quantRepModeWasSetByUser = true;
4217
  Trace("options") << "user assigned option quantRepMode = " << value << std::endl;
4218
}
4219
4220
114
void assign_quantifiers_quantSplit(Options& opts, const std::string& option, bool value) {
4221
4222
114
  opts.quantifiers.quantSplit = value;
4223
114
  opts.quantifiers.quantSplitWasSetByUser = true;
4224
114
  Trace("options") << "user assigned option quantSplit = " << value << std::endl;
4225
114
}
4226
4227
void assign_quantifiers_registerQuantBodyTerms(Options& opts, const std::string& option, bool value) {
4228
4229
  opts.quantifiers.registerQuantBodyTerms = value;
4230
  opts.quantifiers.registerQuantBodyTermsWasSetByUser = true;
4231
  Trace("options") << "user assigned option registerQuantBodyTerms = " << value << std::endl;
4232
}
4233
4234
15
void assign_quantifiers_relationalTriggers(Options& opts, const std::string& option, bool value) {
4235
4236
15
  opts.quantifiers.relationalTriggers = value;
4237
15
  opts.quantifiers.relationalTriggersWasSetByUser = true;
4238
15
  Trace("options") << "user assigned option relationalTriggers = " << value << std::endl;
4239
15
}
4240
4241
3
void assign_quantifiers_relevantTriggers(Options& opts, const std::string& option, bool value) {
4242
4243
3
  opts.quantifiers.relevantTriggers = value;
4244
3
  opts.quantifiers.relevantTriggersWasSetByUser = true;
4245
3
  Trace("options") << "user assigned option relevantTriggers = " << value << std::endl;
4246
3
}
4247
4248
void assign_quantifiers_strictTriggers(Options& opts, const std::string& option, bool value) {
4249
4250
  opts.quantifiers.strictTriggers = value;
4251
  opts.quantifiers.strictTriggersWasSetByUser = true;
4252
  Trace("options") << "user assigned option strictTriggers = " << value << std::endl;
4253
}
4254
4255
void assign_quantifiers_sygus(Options& opts, const std::string& option, bool value) {
4256
4257
  opts.quantifiers.sygus = value;
4258
  opts.quantifiers.sygusWasSetByUser = true;
4259
  Trace("options") << "user assigned option sygus = " << value << std::endl;
4260
}
4261
4262
void assign_quantifiers_sygusActiveGenEnumConsts(Options& opts, const std::string& option, const std::string& optionarg) {
4263
  auto value = handleOption<uint64_t>("sygus-active-gen-cfactor", option, optionarg);
4264
4265
  opts.quantifiers.sygusActiveGenEnumConsts = value;
4266
  opts.quantifiers.sygusActiveGenEnumConstsWasSetByUser = true;
4267
  Trace("options") << "user assigned option sygusActiveGenEnumConsts = " << value << std::endl;
4268
}
4269
4270
14
void assign_quantifiers_sygusActiveGenMode(Options& opts, const std::string& option, const std::string& optionarg) {
4271
14
  auto value = stringToSygusActiveGenMode(optionarg);
4272
4273
14
  opts.quantifiers.sygusActiveGenMode = value;
4274
14
  opts.quantifiers.sygusActiveGenModeWasSetByUser = true;
4275
14
  Trace("options") << "user assigned option sygusActiveGenMode = " << value << std::endl;
4276
14
}
4277
4278
2
void assign_quantifiers_sygusAddConstGrammar(Options& opts, const std::string& option, bool value) {
4279
4280
2
  opts.quantifiers.sygusAddConstGrammar = value;
4281
2
  opts.quantifiers.sygusAddConstGrammarWasSetByUser = true;
4282
2
  Trace("options") << "user assigned option sygusAddConstGrammar = " << value << std::endl;
4283
2
}
4284
4285
3
void assign_quantifiers_sygusArgRelevant(Options& opts, const std::string& option, bool value) {
4286
4287
3
  opts.quantifiers.sygusArgRelevant = value;
4288
3
  opts.quantifiers.sygusArgRelevantWasSetByUser = true;
4289
3
  Trace("options") << "user assigned option sygusArgRelevant = " << value << std::endl;
4290
3
}
4291
4292
void assign_quantifiers_sygusInvAutoUnfold(Options& opts, const std::string& option, bool value) {
4293
4294
  opts.quantifiers.sygusInvAutoUnfold = value;
4295
  opts.quantifiers.sygusInvAutoUnfoldWasSetByUser = true;
4296
  Trace("options") << "user assigned option sygusInvAutoUnfold = " << value << std::endl;
4297
}
4298
4299
1
void assign_quantifiers_sygusBoolIteReturnConst(Options& opts, const std::string& option, bool value) {
4300
4301
1
  opts.quantifiers.sygusBoolIteReturnConst = value;
4302
1
  opts.quantifiers.sygusBoolIteReturnConstWasSetByUser = true;
4303
1
  Trace("options") << "user assigned option sygusBoolIteReturnConst = " << value << std::endl;
4304
1
}
4305
4306
5
void assign_quantifiers_sygusCoreConnective(Options& opts, const std::string& option, bool value) {
4307
4308
5
  opts.quantifiers.sygusCoreConnective = value;
4309
5
  opts.quantifiers.sygusCoreConnectiveWasSetByUser = true;
4310
5
  Trace("options") << "user assigned option sygusCoreConnective = " << value << std::endl;
4311
5
}
4312
4313
void assign_quantifiers_sygusConstRepairAbort(Options& opts, const std::string& option, bool value) {
4314
4315
  opts.quantifiers.sygusConstRepairAbort = value;
4316
  opts.quantifiers.sygusConstRepairAbortWasSetByUser = true;
4317
  Trace("options") << "user assigned option sygusConstRepairAbort = " << value << std::endl;
4318
}
4319
4320
void assign_quantifiers_sygusEvalOpt(Options& opts, const std::string& option, bool value) {
4321
4322
  opts.quantifiers.sygusEvalOpt = value;
4323
  opts.quantifiers.sygusEvalOptWasSetByUser = true;
4324
  Trace("options") << "user assigned option sygusEvalOpt = " << value << std::endl;
4325
}
4326
4327
void assign_quantifiers_sygusEvalUnfold(Options& opts, const std::string& option, bool value) {
4328
4329
  opts.quantifiers.sygusEvalUnfold = value;
4330
  opts.quantifiers.sygusEvalUnfoldWasSetByUser = true;
4331
  Trace("options") << "user assigned option sygusEvalUnfold = " << value << std::endl;
4332
}
4333
4334
void assign_quantifiers_sygusEvalUnfoldBool(Options& opts, const std::string& option, bool value) {
4335
4336
  opts.quantifiers.sygusEvalUnfoldBool = value;
4337
  opts.quantifiers.sygusEvalUnfoldBoolWasSetByUser = true;
4338
  Trace("options") << "user assigned option sygusEvalUnfoldBool = " << value << std::endl;
4339
}
4340
4341
void assign_quantifiers_sygusExprMinerCheckTimeout(Options& opts, const std::string& option, const std::string& optionarg) {
4342
  auto value = handleOption<uint64_t>("sygus-expr-miner-check-timeout", option, optionarg);
4343
4344
  opts.quantifiers.sygusExprMinerCheckTimeout = value;
4345
  opts.quantifiers.sygusExprMinerCheckTimeoutWasSetByUser = true;
4346
  Trace("options") << "user assigned option sygusExprMinerCheckTimeout = " << value << std::endl;
4347
}
4348
4349
2
void assign_quantifiers_sygusExtRew(Options& opts, const std::string& option, bool value) {
4350
4351
2
  opts.quantifiers.sygusExtRew = value;
4352
2
  opts.quantifiers.sygusExtRewWasSetByUser = true;
4353
2
  Trace("options") << "user assigned option sygusExtRew = " << value << std::endl;
4354
2
}
4355
4356
void assign_quantifiers_sygusFilterSolRevSubsume(Options& opts, const std::string& option, bool value) {
4357
4358
  opts.quantifiers.sygusFilterSolRevSubsume = value;
4359
  opts.quantifiers.sygusFilterSolRevSubsumeWasSetByUser = true;
4360
  Trace("options") << "user assigned option sygusFilterSolRevSubsume = " << value << std::endl;
4361
}
4362
4363
void assign_quantifiers_sygusFilterSolMode(Options& opts, const std::string& option, const std::string& optionarg) {
4364
  auto value = stringToSygusFilterSolMode(optionarg);
4365
4366
  opts.quantifiers.sygusFilterSolMode = value;
4367
  opts.quantifiers.sygusFilterSolModeWasSetByUser = true;
4368
  Trace("options") << "user assigned option sygusFilterSolMode = " << value << std::endl;
4369
}
4370
4371
6
void assign_quantifiers_sygusGrammarConsMode(Options& opts, const std::string& option, const std::string& optionarg) {
4372
6
  auto value = stringToSygusGrammarConsMode(optionarg);
4373
4374
6
  opts.quantifiers.sygusGrammarConsMode = value;
4375
6
  opts.quantifiers.sygusGrammarConsModeWasSetByUser = true;
4376
6
  Trace("options") << "user assigned option sygusGrammarConsMode = " << value << std::endl;
4377
6
}
4378
4379
void assign_quantifiers_sygusGrammarNorm(Options& opts, const std::string& option, bool value) {
4380
4381
  opts.quantifiers.sygusGrammarNorm = value;
4382
  opts.quantifiers.sygusGrammarNormWasSetByUser = true;
4383
  Trace("options") << "user assigned option sygusGrammarNorm = " << value << std::endl;
4384
}
4385
4386
60
void assign_quantifiers_sygusInference(Options& opts, const std::string& option, bool value) {
4387
4388
60
  opts.quantifiers.sygusInference = value;
4389
60
  opts.quantifiers.sygusInferenceWasSetByUser = true;
4390
60
  Trace("options") << "user assigned option sygusInference = " << value << std::endl;
4391
60
}
4392
4393
18
void assign_quantifiers_sygusInst(Options& opts, const std::string& option, bool value) {
4394
4395
18
  opts.quantifiers.sygusInst = value;
4396
18
  opts.quantifiers.sygusInstWasSetByUser = true;
4397
18
  Trace("options") << "user assigned option sygusInst = " << value << std::endl;
4398
18
}
4399
4400
void assign_quantifiers_sygusInstMode(Options& opts, const std::string& option, const std::string& optionarg) {
4401
  auto value = stringToSygusInstMode(optionarg);
4402
4403
  opts.quantifiers.sygusInstMode = value;
4404
  opts.quantifiers.sygusInstModeWasSetByUser = true;
4405
  Trace("options") << "user assigned option sygusInstMode = " << value << std::endl;
4406
}
4407
4408
void assign_quantifiers_sygusInstScope(Options& opts, const std::string& option, const std::string& optionarg) {
4409
  auto value = stringToSygusInstScope(optionarg);
4410
4411
  opts.quantifiers.sygusInstScope = value;
4412
  opts.quantifiers.sygusInstScopeWasSetByUser = true;
4413
  Trace("options") << "user assigned option sygusInstScope = " << value << std::endl;
4414
}
4415
4416
void assign_quantifiers_sygusInstTermSel(Options& opts, const std::string& option, const std::string& optionarg) {
4417
  auto value = stringToSygusInstTermSelMode(optionarg);
4418
4419
  opts.quantifiers.sygusInstTermSel = value;
4420
  opts.quantifiers.sygusInstTermSelWasSetByUser = true;
4421
  Trace("options") << "user assigned option sygusInstTermSel = " << value << std::endl;
4422
}
4423
4424
void assign_quantifiers_sygusInvTemplWhenSyntax(Options& opts, const std::string& option, bool value) {
4425
4426
  opts.quantifiers.sygusInvTemplWhenSyntax = value;
4427
  opts.quantifiers.sygusInvTemplWhenSyntaxWasSetByUser = true;
4428
  Trace("options") << "user assigned option sygusInvTemplWhenSyntax = " << value << std::endl;
4429
}
4430
4431
3
void assign_quantifiers_sygusInvTemplMode(Options& opts, const std::string& option, const std::string& optionarg) {
4432
3
  auto value = stringToSygusInvTemplMode(optionarg);
4433
4434
3
  opts.quantifiers.sygusInvTemplMode = value;
4435
3
  opts.quantifiers.sygusInvTemplModeWasSetByUser = true;
4436
3
  Trace("options") << "user assigned option sygusInvTemplMode = " << value << std::endl;
4437
3
}
4438
4439
void assign_quantifiers_sygusMinGrammar(Options& opts, const std::string& option, bool value) {
4440
4441
  opts.quantifiers.sygusMinGrammar = value;
4442
  opts.quantifiers.sygusMinGrammarWasSetByUser = true;
4443
  Trace("options") << "user assigned option sygusMinGrammar = " << value << std::endl;
4444
}
4445
4446
6
void assign_quantifiers_sygusUnifPbe(Options& opts, const std::string& option, bool value) {
4447
4448
6
  opts.quantifiers.sygusUnifPbe = value;
4449
6
  opts.quantifiers.sygusUnifPbeWasSetByUser = true;
4450
6
  Trace("options") << "user assigned option sygusUnifPbe = " << value << std::endl;
4451
6
}
4452
4453
void assign_quantifiers_sygusPbeMultiFair(Options& opts, const std::string& option, bool value) {
4454
4455
  opts.quantifiers.sygusPbeMultiFair = value;
4456
  opts.quantifiers.sygusPbeMultiFairWasSetByUser = true;
4457
  Trace("options") << "user assigned option sygusPbeMultiFair = " << value << std::endl;
4458
}
4459
4460
void assign_quantifiers_sygusPbeMultiFairDiff(Options& opts, const std::string& option, const std::string& optionarg) {
4461
  auto value = handleOption<int64_t>("sygus-pbe-multi-fair-diff", option, optionarg);
4462
4463
  opts.quantifiers.sygusPbeMultiFairDiff = value;
4464
  opts.quantifiers.sygusPbeMultiFairDiffWasSetByUser = true;
4465
  Trace("options") << "user assigned option sygusPbeMultiFairDiff = " << value << std::endl;
4466
}
4467
4468
4
void assign_quantifiers_sygusQePreproc(Options& opts, const std::string& option, bool value) {
4469
4470
4
  opts.quantifiers.sygusQePreproc = value;
4471
4
  opts.quantifiers.sygusQePreprocWasSetByUser = true;
4472
4
  Trace("options") << "user assigned option sygusQePreproc = " << value << std::endl;
4473
4
}
4474
4475
void assign_quantifiers_sygusQueryGen(Options& opts, const std::string& option, bool value) {
4476
4477
  opts.quantifiers.sygusQueryGen = value;
4478
  opts.quantifiers.sygusQueryGenWasSetByUser = true;
4479
  Trace("options") << "user assigned option sygusQueryGen = " << value << std::endl;
4480
}
4481
4482
void assign_quantifiers_sygusQueryGenCheck(Options& opts, const std::string& option, bool value) {
4483
4484
  opts.quantifiers.sygusQueryGenCheck = value;
4485
  opts.quantifiers.sygusQueryGenCheckWasSetByUser = true;
4486
  Trace("options") << "user assigned option sygusQueryGenCheck = " << value << std::endl;
4487
}
4488
4489
void assign_quantifiers_sygusQueryGenDumpFiles(Options& opts, const std::string& option, const std::string& optionarg) {
4490
  auto value = stringToSygusQueryDumpFilesMode(optionarg);
4491
4492
  opts.quantifiers.sygusQueryGenDumpFiles = value;
4493
  opts.quantifiers.sygusQueryGenDumpFilesWasSetByUser = true;
4494
  Trace("options") << "user assigned option sygusQueryGenDumpFiles = " << value << std::endl;
4495
}
4496
4497
void assign_quantifiers_sygusQueryGenThresh(Options& opts, const std::string& option, const std::string& optionarg) {
4498
  auto value = handleOption<uint64_t>("sygus-query-gen-thresh", option, optionarg);
4499
4500
  opts.quantifiers.sygusQueryGenThresh = value;
4501
  opts.quantifiers.sygusQueryGenThreshWasSetByUser = true;
4502
  Trace("options") << "user assigned option sygusQueryGenThresh = " << value << std::endl;
4503
}
4504
4505
3
void assign_quantifiers_sygusRecFun(Options& opts, const std::string& option, bool value) {
4506
4507
3
  opts.quantifiers.sygusRecFun = value;
4508
3
  opts.quantifiers.sygusRecFunWasSetByUser = true;
4509
3
  Trace("options") << "user assigned option sygusRecFun = " << value << std::endl;
4510
3
}
4511
4512
void assign_quantifiers_sygusRecFunEvalLimit(Options& opts, const std::string& option, const std::string& optionarg) {
4513
  auto value = handleOption<uint64_t>("sygus-rec-fun-eval-limit", option, optionarg);
4514
4515
  opts.quantifiers.sygusRecFunEvalLimit = value;
4516
  opts.quantifiers.sygusRecFunEvalLimitWasSetByUser = true;
4517
  Trace("options") << "user assigned option sygusRecFunEvalLimit = " << value << std::endl;
4518
}
4519
4520
8
void assign_quantifiers_sygusRepairConst(Options& opts, const std::string& option, bool value) {
4521
4522
8
  opts.quantifiers.sygusRepairConst = value;
4523
8
  opts.quantifiers.sygusRepairConstWasSetByUser = true;
4524
8
  Trace("options") << "user assigned option sygusRepairConst = " << value << std::endl;
4525
8
}
4526
4527
void assign_quantifiers_sygusRepairConstTimeout(Options& opts, const std::string& option, const std::string& optionarg) {
4528
  auto value = handleOption<uint64_t>("sygus-repair-const-timeout", option, optionarg);
4529
4530
  opts.quantifiers.sygusRepairConstTimeout = value;
4531
  opts.quantifiers.sygusRepairConstTimeoutWasSetByUser = true;
4532
  Trace("options") << "user assigned option sygusRepairConstTimeout = " << value << std::endl;
4533
}
4534
4535
6
void assign_quantifiers_sygusRew(Options& opts, const std::string& option, bool value) {
4536
4537
6
  opts.quantifiers.sygusRew = value;
4538
6
  opts.quantifiers.sygusRewWasSetByUser = true;
4539
6
  Trace("options") << "user assigned option sygusRew = " << value << std::endl;
4540
6
}
4541
4542
1
void assign_quantifiers_sygusRewSynth(Options& opts, const std::string& option, bool value) {
4543
4544
1
  opts.quantifiers.sygusRewSynth = value;
4545
1
  opts.quantifiers.sygusRewSynthWasSetByUser = true;
4546
1
  Trace("options") << "user assigned option sygusRewSynth = " << value << std::endl;
4547
1
}
4548
4549
void assign_quantifiers_sygusRewSynthAccel(Options& opts, const std::string& option, bool value) {
4550
4551
  opts.quantifiers.sygusRewSynthAccel = value;
4552
  opts.quantifiers.sygusRewSynthAccelWasSetByUser = true;
4553
  Trace("options") << "user assigned option sygusRewSynthAccel = " << value << std::endl;
4554
}
4555
4556
5
void assign_quantifiers_sygusRewSynthCheck(Options& opts, const std::string& option, bool value) {
4557
4558
5
  opts.quantifiers.sygusRewSynthCheck = value;
4559
5
  opts.quantifiers.sygusRewSynthCheckWasSetByUser = true;
4560
5
  Trace("options") << "user assigned option sygusRewSynthCheck = " << value << std::endl;
4561
5
}
4562
4563
void assign_quantifiers_sygusRewSynthFilterCong(Options& opts, const std::string& option, bool value) {
4564
4565
  opts.quantifiers.sygusRewSynthFilterCong = value;
4566
  opts.quantifiers.sygusRewSynthFilterCongWasSetByUser = true;
4567
  Trace("options") << "user assigned option sygusRewSynthFilterCong = " << value << std::endl;
4568
}
4569
4570
void assign_quantifiers_sygusRewSynthFilterMatch(Options& opts, const std::string& option, bool value) {
4571
4572
  opts.quantifiers.sygusRewSynthFilterMatch = value;
4573
  opts.quantifiers.sygusRewSynthFilterMatchWasSetByUser = true;
4574
  Trace("options") << "user assigned option sygusRewSynthFilterMatch = " << value << std::endl;
4575
}
4576
4577
void assign_quantifiers_sygusRewSynthFilterNonLinear(Options& opts, const std::string& option, bool value) {
4578
4579
  opts.quantifiers.sygusRewSynthFilterNonLinear = value;
4580
  opts.quantifiers.sygusRewSynthFilterNonLinearWasSetByUser = true;
4581
  Trace("options") << "user assigned option sygusRewSynthFilterNonLinear = " << value << std::endl;
4582
}
4583
4584
void assign_quantifiers_sygusRewSynthFilterOrder(Options& opts, const std::string& option, bool value) {
4585
4586
  opts.quantifiers.sygusRewSynthFilterOrder = value;
4587
  opts.quantifiers.sygusRewSynthFilterOrderWasSetByUser = true;
4588
  Trace("options") << "user assigned option sygusRewSynthFilterOrder = " << value << std::endl;
4589
}
4590
4591
256
void assign_quantifiers_sygusRewSynthInput(Options& opts, const std::string& option, bool value) {
4592
4593
256
  opts.quantifiers.sygusRewSynthInput = value;
4594
256
  opts.quantifiers.sygusRewSynthInputWasSetByUser = true;
4595
256
  Trace("options") << "user assigned option sygusRewSynthInput = " << value << std::endl;
4596
256
}
4597
4598
void assign_quantifiers_sygusRewSynthInputNVars(Options& opts, const std::string& option, const std::string& optionarg) {
4599
  auto value = handleOption<int64_t>("sygus-rr-synth-input-nvars", option, optionarg);
4600
4601
  opts.quantifiers.sygusRewSynthInputNVars = value;
4602
  opts.quantifiers.sygusRewSynthInputNVarsWasSetByUser = true;
4603
  Trace("options") << "user assigned option sygusRewSynthInputNVars = " << value << std::endl;
4604
}
4605
4606
void assign_quantifiers_sygusRewSynthInputUseBool(Options& opts, const std::string& option, bool value) {
4607
4608
  opts.quantifiers.sygusRewSynthInputUseBool = value;
4609
  opts.quantifiers.sygusRewSynthInputUseBoolWasSetByUser = true;
4610
  Trace("options") << "user assigned option sygusRewSynthInputUseBool = " << value << std::endl;
4611
}
4612
4613
void assign_quantifiers_sygusRewSynthRec(Options& opts, const std::string& option, bool value) {
4614
4615
  opts.quantifiers.sygusRewSynthRec = value;
4616
  opts.quantifiers.sygusRewSynthRecWasSetByUser = true;
4617
  Trace("options") << "user assigned option sygusRewSynthRec = " << value << std::endl;
4618
}
4619
4620
void assign_quantifiers_sygusRewVerify(Options& opts, const std::string& option, bool value) {
4621
4622
  opts.quantifiers.sygusRewVerify = value;
4623
  opts.quantifiers.sygusRewVerifyWasSetByUser = true;
4624
  Trace("options") << "user assigned option sygusRewVerify = " << value << std::endl;
4625
}
4626
4627
7
void assign_quantifiers_sygusRewVerifyAbort(Options& opts, const std::string& option, bool value) {
4628
4629
7
  opts.quantifiers.sygusRewVerifyAbort = value;
4630
7
  opts.quantifiers.sygusRewVerifyAbortWasSetByUser = true;
4631
7
  Trace("options") << "user assigned option sygusRewVerifyAbort = " << value << std::endl;
4632
7
}
4633
4634
void assign_quantifiers_sygusSampleFpUniform(Options& opts, const std::string& option, bool value) {
4635
4636
  opts.quantifiers.sygusSampleFpUniform = value;
4637
  opts.quantifiers.sygusSampleFpUniformWasSetByUser = true;
4638
  Trace("options") << "user assigned option sygusSampleFpUniform = " << value << std::endl;
4639
}
4640
4641
void assign_quantifiers_sygusSampleGrammar(Options& opts, const std::string& option, bool value) {
4642
4643
  opts.quantifiers.sygusSampleGrammar = value;
4644
  opts.quantifiers.sygusSampleGrammarWasSetByUser = true;
4645
  Trace("options") << "user assigned option sygusSampleGrammar = " << value << std::endl;
4646
}
4647
4648
7
void assign_quantifiers_sygusSamples(Options& opts, const std::string& option, const std::string& optionarg) {
4649
7
  auto value = handleOption<int64_t>("sygus-samples", option, optionarg);
4650
4651
7
  opts.quantifiers.sygusSamples = value;
4652
7
  opts.quantifiers.sygusSamplesWasSetByUser = true;
4653
7
  Trace("options") << "user assigned option sygusSamples = " << value << std::endl;
4654
7
}
4655
4656
void assign_quantifiers_cegqiSingleInvAbort(Options& opts, const std::string& option, bool value) {
4657
4658
  opts.quantifiers.cegqiSingleInvAbort = value;
4659
  opts.quantifiers.cegqiSingleInvAbortWasSetByUser = true;
4660
  Trace("options") << "user assigned option cegqiSingleInvAbort = " << value << std::endl;
4661
}
4662
4663
void assign_quantifiers_cegqiSingleInvPartial(Options& opts, const std::string& option, bool value) {
4664
4665
  opts.quantifiers.cegqiSingleInvPartial = value;
4666
  opts.quantifiers.cegqiSingleInvPartialWasSetByUser = true;
4667
  Trace("options") << "user assigned option cegqiSingleInvPartial = " << value << std::endl;
4668
}
4669
4670
1
void assign_quantifiers_cegqiSingleInvReconstructLimit(Options& opts, const std::string& option, const std::string& optionarg) {
4671
1
  auto value = handleOption<int64_t>("sygus-si-rcons-limit", option, optionarg);
4672
4673
1
  opts.quantifiers.cegqiSingleInvReconstructLimit = value;
4674
1
  opts.quantifiers.cegqiSingleInvReconstructLimitWasSetByUser = true;
4675
1
  Trace("options") << "user assigned option cegqiSingleInvReconstructLimit = " << value << std::endl;
4676
1
}
4677
4678
void assign_quantifiers_cegqiSingleInvReconstruct(Options& opts, const std::string& option, const std::string& optionarg) {
4679
  auto value = stringToCegqiSingleInvRconsMode(optionarg);
4680
4681
  opts.quantifiers.cegqiSingleInvReconstruct = value;
4682
  opts.quantifiers.cegqiSingleInvReconstructWasSetByUser = true;
4683
  Trace("options") << "user assigned option cegqiSingleInvReconstruct = " << value << std::endl;
4684
}
4685
4686
void assign_quantifiers_cegqiSingleInvReconstructConst(Options& opts, const std::string& option, bool value) {
4687
4688
  opts.quantifiers.cegqiSingleInvReconstructConst = value;
4689
  opts.quantifiers.cegqiSingleInvReconstructConstWasSetByUser = true;
4690
  Trace("options") << "user assigned option cegqiSingleInvReconstructConst = " << value << std::endl;
4691
}
4692
4693
47
void assign_quantifiers_cegqiSingleInvMode(Options& opts, const std::string& option, const std::string& optionarg) {
4694
47
  auto value = stringToCegqiSingleInvMode(optionarg);
4695
4696
47
  opts.quantifiers.cegqiSingleInvMode = value;
4697
47
  opts.quantifiers.cegqiSingleInvModeWasSetByUser = true;
4698
47
  Trace("options") << "user assigned option cegqiSingleInvMode = " << value << std::endl;
4699
47
}
4700
4701
4
void assign_quantifiers_sygusStream(Options& opts, const std::string& option, bool value) {
4702
4703
4
  opts.quantifiers.sygusStream = value;
4704
4
  opts.quantifiers.sygusStreamWasSetByUser = true;
4705
4
  Trace("options") << "user assigned option sygusStream = " << value << std::endl;
4706
4
}
4707
4708
void assign_quantifiers_sygusTemplEmbedGrammar(Options& opts, const std::string& option, bool value) {
4709
4710
  opts.quantifiers.sygusTemplEmbedGrammar = value;
4711
  opts.quantifiers.sygusTemplEmbedGrammarWasSetByUser = true;
4712
  Trace("options") << "user assigned option sygusTemplEmbedGrammar = " << value << std::endl;
4713
}
4714
4715
void assign_quantifiers_sygusUnifCondIndNoRepeatSol(Options& opts, const std::string& option, bool value) {
4716
4717
  opts.quantifiers.sygusUnifCondIndNoRepeatSol = value;
4718
  opts.quantifiers.sygusUnifCondIndNoRepeatSolWasSetByUser = true;
4719
  Trace("options") << "user assigned option sygusUnifCondIndNoRepeatSol = " << value << std::endl;
4720
}
4721
4722
9
void assign_quantifiers_sygusUnifPi(Options& opts, const std::string& option, const std::string& optionarg) {
4723
9
  auto value = stringToSygusUnifPiMode(optionarg);
4724
4725
9
  opts.quantifiers.sygusUnifPi = value;
4726
9
  opts.quantifiers.sygusUnifPiWasSetByUser = true;
4727
9
  Trace("options") << "user assigned option sygusUnifPi = " << value << std::endl;
4728
9
}
4729
4730
void assign_quantifiers_sygusUnifShuffleCond(Options& opts, const std::string& option, bool value) {
4731
4732
  opts.quantifiers.sygusUnifShuffleCond = value;
4733
  opts.quantifiers.sygusUnifShuffleCondWasSetByUser = true;
4734
  Trace("options") << "user assigned option sygusUnifShuffleCond = " << value << std::endl;
4735
}
4736
4737
void assign_quantifiers_sygusVerifyInstMaxRounds(Options& opts, const std::string& option, const std::string& optionarg) {
4738
  auto value = handleOption<int64_t>("sygus-verify-inst-max-rounds", option, optionarg);
4739
4740
  opts.quantifiers.sygusVerifyInstMaxRounds = value;
4741
  opts.quantifiers.sygusVerifyInstMaxRoundsWasSetByUser = true;
4742
  Trace("options") << "user assigned option sygusVerifyInstMaxRounds = " << value << std::endl;
4743
}
4744
4745
void assign_quantifiers_termDbCd(Options& opts, const std::string& option, bool value) {
4746
4747
  opts.quantifiers.termDbCd = value;
4748
  opts.quantifiers.termDbCdWasSetByUser = true;
4749
  Trace("options") << "user assigned option termDbCd = " << value << std::endl;
4750
}
4751
4752
void assign_quantifiers_termDbMode(Options& opts, const std::string& option, const std::string& optionarg) {
4753
  auto value = stringToTermDbMode(optionarg);
4754
4755
  opts.quantifiers.termDbMode = value;
4756
  opts.quantifiers.termDbModeWasSetByUser = true;
4757
  Trace("options") << "user assigned option termDbMode = " << value << std::endl;
4758
}
4759
4760
void assign_quantifiers_triggerActiveSelMode(Options& opts, const std::string& option, const std::string& optionarg) {
4761
  auto value = stringToTriggerActiveSelMode(optionarg);
4762
4763
  opts.quantifiers.triggerActiveSelMode = value;
4764
  opts.quantifiers.triggerActiveSelModeWasSetByUser = true;
4765
  Trace("options") << "user assigned option triggerActiveSelMode = " << value << std::endl;
4766
}
4767
4768
void assign_quantifiers_triggerSelMode(Options& opts, const std::string& option, const std::string& optionarg) {
4769
  auto value = stringToTriggerSelMode(optionarg);
4770
4771
  opts.quantifiers.triggerSelMode = value;
4772
  opts.quantifiers.triggerSelModeWasSetByUser = true;
4773
  Trace("options") << "user assigned option triggerSelMode = " << value << std::endl;
4774
}
4775
4776
void assign_quantifiers_userPatternsQuant(Options& opts, const std::string& option, const std::string& optionarg) {
4777
  auto value = stringToUserPatMode(optionarg);
4778
4779
  opts.quantifiers.userPatternsQuant = value;
4780
  opts.quantifiers.userPatternsQuantWasSetByUser = true;
4781
  Trace("options") << "user assigned option userPatternsQuant = " << value << std::endl;
4782
}
4783
4784
void assign_quantifiers_varElimQuant(Options& opts, const std::string& option, bool value) {
4785
4786
  opts.quantifiers.varElimQuant = value;
4787
  opts.quantifiers.varElimQuantWasSetByUser = true;
4788
  Trace("options") << "user assigned option varElimQuant = " << value << std::endl;
4789
}
4790
4791
7
void assign_quantifiers_varIneqElimQuant(Options& opts, const std::string& option, bool value) {
4792
4793
7
  opts.quantifiers.varIneqElimQuant = value;
4794
7
  opts.quantifiers.varIneqElimQuantWasSetByUser = true;
4795
7
  Trace("options") << "user assigned option varIneqElimQuant = " << value << std::endl;
4796
7
}
4797
4798
void assign_sep_sepCheckNeg(Options& opts, const std::string& option, bool value) {
4799
4800
  opts.sep.sepCheckNeg = value;
4801
  opts.sep.sepCheckNegWasSetByUser = true;
4802
  Trace("options") << "user assigned option sepCheckNeg = " << value << std::endl;
4803
}
4804
4805
void assign_sep_sepChildRefine(Options& opts, const std::string& option, bool value) {
4806
4807
  opts.sep.sepChildRefine = value;
4808
  opts.sep.sepChildRefineWasSetByUser = true;
4809
  Trace("options") << "user assigned option sepChildRefine = " << value << std::endl;
4810
}
4811
4812
void assign_sep_sepDisequalC(Options& opts, const std::string& option, bool value) {
4813
4814
  opts.sep.sepDisequalC = value;
4815
  opts.sep.sepDisequalCWasSetByUser = true;
4816
  Trace("options") << "user assigned option sepDisequalC = " << value << std::endl;
4817
}
4818
4819
void assign_sep_sepExp(Options& opts, const std::string& option, bool value) {
4820
4821
  opts.sep.sepExp = value;
4822
  opts.sep.sepExpWasSetByUser = true;
4823
  Trace("options") << "user assigned option sepExp = " << value << std::endl;
4824
}
4825
4826
void assign_sep_sepMinimalRefine(Options& opts, const std::string& option, bool value) {
4827
4828
  opts.sep.sepMinimalRefine = value;
4829
  opts.sep.sepMinimalRefineWasSetByUser = true;
4830
  Trace("options") << "user assigned option sepMinimalRefine = " << value << std::endl;
4831
}
4832
4833
1
void assign_sep_sepPreSkolemEmp(Options& opts, const std::string& option, bool value) {
4834
4835
1
  opts.sep.sepPreSkolemEmp = value;
4836
1
  opts.sep.sepPreSkolemEmpWasSetByUser = true;
4837
1
  Trace("options") << "user assigned option sepPreSkolemEmp = " << value << std::endl;
4838
1
}
4839
4840
116
void assign_sets_setsExt(Options& opts, const std::string& option, bool value) {
4841
4842
116
  opts.sets.setsExt = value;
4843
116
  opts.sets.setsExtWasSetByUser = true;
4844
116
  Trace("options") << "user assigned option setsExt = " << value << std::endl;
4845
116
}
4846
4847
2
void assign_sets_setsInferAsLemmas(Options& opts, const std::string& option, bool value) {
4848
4849
2
  opts.sets.setsInferAsLemmas = value;
4850
2
  opts.sets.setsInferAsLemmasWasSetByUser = true;
4851
2
  Trace("options") << "user assigned option setsInferAsLemmas = " << value << std::endl;
4852
2
}
4853
4854
void assign_sets_setsProxyLemmas(Options& opts, const std::string& option, bool value) {
4855
4856
  opts.sets.setsProxyLemmas = value;
4857
  opts.sets.setsProxyLemmasWasSetByUser = true;
4858
  Trace("options") << "user assigned option setsProxyLemmas = " << value << std::endl;
4859
}
4860
4861
4
void assign_smt_abstractValues(Options& opts, const std::string& option, bool value) {
4862
4863
4
  opts.smt.abstractValues = value;
4864
4
  opts.smt.abstractValuesWasSetByUser = true;
4865
4
  Trace("options") << "user assigned option abstractValues = " << value << std::endl;
4866
4
}
4867
4868
31
void assign_smt_ackermann(Options& opts, const std::string& option, bool value) {
4869
4870
31
  opts.smt.ackermann = value;
4871
31
  opts.smt.ackermannWasSetByUser = true;
4872
31
  Trace("options") << "user assigned option ackermann = " << value << std::endl;
4873
31
}
4874
4875
21
void assign_smt_blockModelsMode(Options& opts, const std::string& option, const std::string& optionarg) {
4876
21
  auto value = stringToBlockModelsMode(optionarg);
4877
4878
21
  opts.smt.blockModelsMode = value;
4879
21
  opts.smt.blockModelsModeWasSetByUser = true;
4880
21
  Trace("options") << "user assigned option blockModelsMode = " << value << std::endl;
4881
21
}
4882
4883
78
void assign_smt_BVAndIntegerGranularity(Options& opts, const std::string& option, const std::string& optionarg) {
4884
78
  auto value = handleOption<uint64_t>("bvand-integer-granularity", option, optionarg);
4885
4886
78
  opts.smt.BVAndIntegerGranularity = value;
4887
78
  opts.smt.BVAndIntegerGranularityWasSetByUser = true;
4888
78
  Trace("options") << "user assigned option BVAndIntegerGranularity = " << value << std::endl;
4889
78
}
4890
4891
13
void assign_smt_checkAbducts(Options& opts, const std::string& option, bool value) {
4892
4893
13
  opts.smt.checkAbducts = value;
4894
13
  opts.smt.checkAbductsWasSetByUser = true;
4895
13
  Trace("options") << "user assigned option checkAbducts = " << value << std::endl;
4896
13
}
4897
4898
8
void assign_smt_checkInterpols(Options& opts, const std::string& option, bool value) {
4899
4900
8
  opts.smt.checkInterpols = value;
4901
8
  opts.smt.checkInterpolsWasSetByUser = true;
4902
8
  Trace("options") << "user assigned option checkInterpols = " << value << std::endl;
4903
8
}
4904
4905
116
void assign_smt_checkModels(Options& opts, const std::string& option, bool value) {
4906
4907
116
  opts.smt.checkModels = value;
4908
116
  opts.smt.checkModelsWasSetByUser = true;
4909
116
  Trace("options") << "user assigned option checkModels = " << value << std::endl;
4910
116
}
4911
4912
1160
void assign_smt_checkProofs(Options& opts, const std::string& option, bool value) {
4913
4914
1160
  opts.smt.checkProofs = value;
4915
1160
  opts.smt.checkProofsWasSetByUser = true;
4916
1160
  Trace("options") << "user assigned option checkProofs = " << value << std::endl;
4917
1160
}
4918
4919
188
void assign_smt_checkSynthSol(Options& opts, const std::string& option, bool value) {
4920
4921
188
  opts.smt.checkSynthSol = value;
4922
188
  opts.smt.checkSynthSolWasSetByUser = true;
4923
188
  Trace("options") << "user assigned option checkSynthSol = " << value << std::endl;
4924
188
}
4925
4926
1185
void assign_smt_checkUnsatCores(Options& opts, const std::string& option, bool value) {
4927
4928
1185
  opts.smt.checkUnsatCores = value;
4929
1185
  opts.smt.checkUnsatCoresWasSetByUser = true;
4930
1185
  Trace("options") << "user assigned option checkUnsatCores = " << value << std::endl;
4931
1185
}
4932
4933
1224
void assign_smt_debugCheckModels(Options& opts, const std::string& option, bool value) {
4934
4935
1224
  opts.smt.debugCheckModels = value;
4936
1224
  opts.smt.debugCheckModelsWasSetByUser = true;
4937
1224
  Trace("options") << "user assigned option debugCheckModels = " << value << std::endl;
4938
1224
}
4939
4940
void assign_smt_dumpToFileName(Options& opts, const std::string& option, const std::string& optionarg) {
4941
  auto value = handleOption<ManagedOut>("dump-to", option, optionarg);
4942
  opts.handler().setDumpStream("dump-to", option, value);
4943
  opts.smt.dumpToFileName = value;
4944
  opts.smt.dumpToFileNameWasSetByUser = true;
4945
  Trace("options") << "user assigned option dumpToFileName = " << value << std::endl;
4946
}
4947
4948
3
void assign_smt_dumpModeString(Options& opts, const std::string& option, const std::string& optionarg) {
4949
6
  auto value = handleOption<std::string>("dump", option, optionarg);
4950
4
  opts.handler().setDumpMode("dump", option, value);
4951
2
  opts.smt.dumpModeString = value;
4952
2
  opts.smt.dumpModeStringWasSetByUser = true;
4953
2
  Trace("options") << "user assigned option dumpModeString = " << value << std::endl;
4954
2
}
4955
4956
void assign_smt_earlyIteRemoval(Options& opts, const std::string& option, bool value) {
4957
4958
  opts.smt.earlyIteRemoval = value;
4959
  opts.smt.earlyIteRemovalWasSetByUser = true;
4960
  Trace("options") << "user assigned option earlyIteRemoval = " << value << std::endl;
4961
}
4962
4963
void assign_smt_expandDefinitions(Options& opts, const std::string& option, bool value) {
4964
4965
  opts.smt.expandDefinitions = value;
4966
  opts.smt.expandDefinitionsWasSetByUser = true;
4967
  Trace("options") << "user assigned option expandDefinitions = " << value << std::endl;
4968
}
4969
4970
19
void assign_smt_extRewPrep(Options& opts, const std::string& option, bool value) {
4971
4972
19
  opts.smt.extRewPrep = value;
4973
19
  opts.smt.extRewPrepWasSetByUser = true;
4974
19
  Trace("options") << "user assigned option extRewPrep = " << value << std::endl;
4975
19
}
4976
4977
7
void assign_smt_extRewPrepAgg(Options& opts, const std::string& option, bool value) {
4978
4979
7
  opts.smt.extRewPrepAgg = value;
4980
7
  opts.smt.extRewPrepAggWasSetByUser = true;
4981
7
  Trace("options") << "user assigned option extRewPrepAgg = " << value << std::endl;
4982
7
}
4983
4984
2
void assign_smt_foreignTheoryRewrite(Options& opts, const std::string& option, bool value) {
4985
4986
2
  opts.smt.foreignTheoryRewrite = value;
4987
2
  opts.smt.foreignTheoryRewriteWasSetByUser = true;
4988
2
  Trace("options") << "user assigned option foreignTheoryRewrite = " << value << std::endl;
4989
2
}
4990
4991
68
void assign_smt_iandMode(Options& opts, const std::string& option, const std::string& optionarg) {
4992
68
  auto value = stringToIandMode(optionarg);
4993
4994
68
  opts.smt.iandMode = value;
4995
68
  opts.smt.iandModeWasSetByUser = true;
4996
68
  Trace("options") << "user assigned option iandMode = " << value << std::endl;
4997
68
}
4998
4999
2
void assign_smt_interactiveMode(Options& opts, const std::string& option, bool value) {
5000
2
  opts.handler().setProduceAssertions("interactive-mode", option, value);
5001
2
  opts.smt.interactiveMode = value;
5002
2
  opts.smt.interactiveModeWasSetByUser = true;
5003
2
  Trace("options") << "user assigned option interactiveMode = " << value << std::endl;
5004
2
}
5005
5006
3
void assign_smt_doITESimp(Options& opts, const std::string& option, bool value) {
5007
5008
3
  opts.smt.doITESimp = value;
5009
3
  opts.smt.doITESimpWasSetByUser = true;
5010
3
  Trace("options") << "user assigned option doITESimp = " << value << std::endl;
5011
3
}
5012
5013
2
void assign_smt_learnedRewrite(Options& opts, const std::string& option, bool value) {
5014
5015
2
  opts.smt.learnedRewrite = value;
5016
2
  opts.smt.learnedRewriteWasSetByUser = true;
5017
2
  Trace("options") << "user assigned option learnedRewrite = " << value << std::endl;
5018
2
}
5019
5020
3
void assign_smt_minimalUnsatCores(Options& opts, const std::string& option, bool value) {
5021
5022
3
  opts.smt.minimalUnsatCores = value;
5023
3
  opts.smt.minimalUnsatCoresWasSetByUser = true;
5024
3
  Trace("options") << "user assigned option minimalUnsatCores = " << value << std::endl;
5025
3
}
5026
5027
6
void assign_smt_modelCoresMode(Options& opts, const std::string& option, const std::string& optionarg) {
5028
6
  auto value = stringToModelCoresMode(optionarg);
5029
5030
6
  opts.smt.modelCoresMode = value;
5031
6
  opts.smt.modelCoresModeWasSetByUser = true;
5032
6
  Trace("options") << "user assigned option modelCoresMode = " << value << std::endl;
5033
6
}
5034
5035
1
void assign_smt_modelUninterpPrint(Options& opts, const std::string& option, const std::string& optionarg) {
5036
1
  auto value = stringToModelUninterpPrintMode(optionarg);
5037
5038
1
  opts.smt.modelUninterpPrint = value;
5039
1
  opts.smt.modelUninterpPrintWasSetByUser = true;
5040
1
  Trace("options") << "user assigned option modelUninterpPrint = " << value << std::endl;
5041
1
}
5042
5043
1
void assign_smt_modelWitnessValue(Options& opts, const std::string& option, bool value) {
5044
5045
1
  opts.smt.modelWitnessValue = value;
5046
1
  opts.smt.modelWitnessValueWasSetByUser = true;
5047
1
  Trace("options") << "user assigned option modelWitnessValue = " << value << std::endl;
5048
1
}
5049
5050
void assign_smt_doITESimpOnRepeat(Options& opts, const std::string& option, bool value) {
5051
5052
  opts.smt.doITESimpOnRepeat = value;
5053
  opts.smt.doITESimpOnRepeatWasSetByUser = true;
5054
  Trace("options") << "user assigned option doITESimpOnRepeat = " << value << std::endl;
5055
}
5056
5057
21
void assign_smt_produceAbducts(Options& opts, const std::string& option, bool value) {
5058
5059
21
  opts.smt.produceAbducts = value;
5060
21
  opts.smt.produceAbductsWasSetByUser = true;
5061
21
  Trace("options") << "user assigned option produceAbducts = " << value << std::endl;
5062
21
}
5063
5064
26
void assign_smt_produceAssertions(Options& opts, const std::string& option, bool value) {
5065
26
  opts.handler().setProduceAssertions("produce-assertions", option, value);
5066
26
  opts.smt.produceAssertions = value;
5067
26
  opts.smt.produceAssertionsWasSetByUser = true;
5068
26
  Trace("options") << "user assigned option produceAssertions = " << value << std::endl;
5069
26
}
5070
5071
4
void assign_smt_produceAssignments(Options& opts, const std::string& option, bool value) {
5072
5073
4
  opts.smt.produceAssignments = value;
5074
4
  opts.smt.produceAssignmentsWasSetByUser = true;
5075
4
  Trace("options") << "user assigned option produceAssignments = " << value << std::endl;
5076
4
}
5077
5078
11
void assign_smt_produceInterpols(Options& opts, const std::string& option, const std::string& optionarg) {
5079
11
  auto value = stringToProduceInterpols(optionarg);
5080
5081
11
  opts.smt.produceInterpols = value;
5082
11
  opts.smt.produceInterpolsWasSetByUser = true;
5083
11
  Trace("options") << "user assigned option produceInterpols = " << value << std::endl;
5084
11
}
5085
5086
796
void assign_smt_produceModels(Options& opts, const std::string& option, bool value) {
5087
5088
796
  opts.smt.produceModels = value;
5089
796
  opts.smt.produceModelsWasSetByUser = true;
5090
796
  Trace("options") << "user assigned option produceModels = " << value << std::endl;
5091
796
}
5092
5093
31
void assign_smt_produceProofs(Options& opts, const std::string& option, bool value) {
5094
5095
31
  opts.smt.produceProofs = value;
5096
31
  opts.smt.produceProofsWasSetByUser = true;
5097
31
  Trace("options") << "user assigned option produceProofs = " << value << std::endl;
5098
31
}
5099
5100
15
void assign_smt_unsatAssumptions(Options& opts, const std::string& option, bool value) {
5101
5102
15
  opts.smt.unsatAssumptions = value;
5103
15
  opts.smt.unsatAssumptionsWasSetByUser = true;
5104
15
  Trace("options") << "user assigned option unsatAssumptions = " << value << std::endl;
5105
15
}
5106
5107
21
void assign_smt_unsatCores(Options& opts, const std::string& option, bool value) {
5108
5109
21
  opts.smt.unsatCores = value;
5110
21
  opts.smt.unsatCoresWasSetByUser = true;
5111
21
  Trace("options") << "user assigned option unsatCores = " << value << std::endl;
5112
21
}
5113
5114
4
void assign_smt_repeatSimp(Options& opts, const std::string& option, bool value) {
5115
5116
4
  opts.smt.repeatSimp = value;
5117
4
  opts.smt.repeatSimpWasSetByUser = true;
5118
4
  Trace("options") << "user assigned option repeatSimp = " << value << std::endl;
5119
4
}
5120
5121
3
void assign_smt_compressItes(Options& opts, const std::string& option, bool value) {
5122
5123
3
  opts.smt.compressItes = value;
5124
3
  opts.smt.compressItesWasSetByUser = true;
5125
3
  Trace("options") << "user assigned option compressItes = " << value << std::endl;
5126
3
}
5127
5128
void assign_smt_zombieHuntThreshold(Options& opts, const std::string& option, const std::string& optionarg) {
5129
  auto value = handleOption<uint64_t>("simp-ite-hunt-zombies", option, optionarg);
5130
5131
  opts.smt.zombieHuntThreshold = value;
5132
  opts.smt.zombieHuntThresholdWasSetByUser = true;
5133
  Trace("options") << "user assigned option zombieHuntThreshold = " << value << std::endl;
5134
}
5135
5136
void assign_smt_simplifyWithCareEnabled(Options& opts, const std::string& option, bool value) {
5137
5138
  opts.smt.simplifyWithCareEnabled = value;
5139
  opts.smt.simplifyWithCareEnabledWasSetByUser = true;
5140
  Trace("options") << "user assigned option simplifyWithCareEnabled = " << value << std::endl;
5141
}
5142
5143
32
void assign_smt_simplificationMode(Options& opts, const std::string& option, const std::string& optionarg) {
5144
32
  auto value = stringToSimplificationMode(optionarg);
5145
5146
32
  opts.smt.simplificationMode = value;
5147
32
  opts.smt.simplificationModeWasSetByUser = true;
5148
32
  Trace("options") << "user assigned option simplificationMode = " << value << std::endl;
5149
32
}
5150
5151
149
void assign_smt_solveBVAsInt(Options& opts, const std::string& option, const std::string& optionarg) {
5152
149
  auto value = stringToSolveBVAsIntMode(optionarg);
5153
5154
149
  opts.smt.solveBVAsInt = value;
5155
149
  opts.smt.solveBVAsIntWasSetByUser = true;
5156
149
  Trace("options") << "user assigned option solveBVAsInt = " << value << std::endl;
5157
149
}
5158
5159
15
void assign_smt_solveIntAsBV(Options& opts, const std::string& option, const std::string& optionarg) {
5160
15
  auto value = handleOption<uint64_t>("solve-int-as-bv", option, optionarg);
5161
5162
15
  opts.smt.solveIntAsBV = value;
5163
15
  opts.smt.solveIntAsBVWasSetByUser = true;
5164
15
  Trace("options") << "user assigned option solveIntAsBV = " << value << std::endl;
5165
15
}
5166
5167
9
void assign_smt_solveRealAsInt(Options& opts, const std::string& option, bool value) {
5168
5169
9
  opts.smt.solveRealAsInt = value;
5170
9
  opts.smt.solveRealAsIntWasSetByUser = true;
5171
9
  Trace("options") << "user assigned option solveRealAsInt = " << value << std::endl;
5172
9
}
5173
5174
26
void assign_smt_sortInference(Options& opts, const std::string& option, bool value) {
5175
5176
26
  opts.smt.sortInference = value;
5177
26
  opts.smt.sortInferenceWasSetByUser = true;
5178
26
  Trace("options") << "user assigned option sortInference = " << value << std::endl;
5179
26
}
5180
5181
void assign_smt_doStaticLearning(Options& opts, const std::string& option, bool value) {
5182
5183
  opts.smt.doStaticLearning = value;
5184
  opts.smt.doStaticLearningWasSetByUser = true;
5185
  Trace("options") << "user assigned option doStaticLearning = " << value << std::endl;
5186
}
5187
5188
182
void assign_smt_sygusOut(Options& opts, const std::string& option, const std::string& optionarg) {
5189
182
  auto value = stringToSygusSolutionOutMode(optionarg);
5190
5191
182
  opts.smt.sygusOut = value;
5192
182
  opts.smt.sygusOutWasSetByUser = true;
5193
182
  Trace("options") << "user assigned option sygusOut = " << value << std::endl;
5194
182
}
5195
5196
void assign_smt_sygusPrintCallbacks(Options& opts, const std::string& option, bool value) {
5197
5198
  opts.smt.sygusPrintCallbacks = value;
5199
  opts.smt.sygusPrintCallbacksWasSetByUser = true;
5200
  Trace("options") << "user assigned option sygusPrintCallbacks = " << value << std::endl;
5201
}
5202
5203
107
void assign_smt_unconstrainedSimp(Options& opts, const std::string& option, bool value) {
5204
5205
107
  opts.smt.unconstrainedSimp = value;
5206
107
  opts.smt.unconstrainedSimpWasSetByUser = true;
5207
107
  Trace("options") << "user assigned option unconstrainedSimp = " << value << std::endl;
5208
107
}
5209
5210
2
void assign_smt_unsatCoresMode(Options& opts, const std::string& option, const std::string& optionarg) {
5211
2
  auto value = stringToUnsatCoresMode(optionarg);
5212
5213
2
  opts.smt.unsatCoresMode = value;
5214
2
  opts.smt.unsatCoresModeWasSetByUser = true;
5215
2
  Trace("options") << "user assigned option unsatCoresMode = " << value << std::endl;
5216
2
}
5217
5218
51
void assign_strings_regExpElim(Options& opts, const std::string& option, bool value) {
5219
5220
51
  opts.strings.regExpElim = value;
5221
51
  opts.strings.regExpElimWasSetByUser = true;
5222
51
  Trace("options") << "user assigned option regExpElim = " << value << std::endl;
5223
51
}
5224
5225
20
void assign_strings_regExpElimAgg(Options& opts, const std::string& option, bool value) {
5226
5227
20
  opts.strings.regExpElimAgg = value;
5228
20
  opts.strings.regExpElimAggWasSetByUser = true;
5229
20
  Trace("options") << "user assigned option regExpElimAgg = " << value << std::endl;
5230
20
}
5231
5232
void assign_strings_stringRegExpInterMode(Options& opts, const std::string& option, const std::string& optionarg) {
5233
  auto value = stringToRegExpInterMode(optionarg);
5234
5235
  opts.strings.stringRegExpInterMode = value;
5236
  opts.strings.stringRegExpInterModeWasSetByUser = true;
5237
  Trace("options") << "user assigned option stringRegExpInterMode = " << value << std::endl;
5238
}
5239
5240
void assign_strings_stringCheckEntailLen(Options& opts, const std::string& option, bool value) {
5241
5242
  opts.strings.stringCheckEntailLen = value;
5243
  opts.strings.stringCheckEntailLenWasSetByUser = true;
5244
  Trace("options") << "user assigned option stringCheckEntailLen = " << value << std::endl;
5245
}
5246
5247
2
void assign_strings_stringEager(Options& opts, const std::string& option, bool value) {
5248
5249
2
  opts.strings.stringEager = value;
5250
2
  opts.strings.stringEagerWasSetByUser = true;
5251
2
  Trace("options") << "user assigned option stringEager = " << value << std::endl;
5252
2
}
5253
5254
void assign_strings_stringEagerEval(Options& opts, const std::string& option, bool value) {
5255
5256
  opts.strings.stringEagerEval = value;
5257
  opts.strings.stringEagerEvalWasSetByUser = true;
5258
  Trace("options") << "user assigned option stringEagerEval = " << value << std::endl;
5259
}
5260
5261
void assign_strings_stringEagerLen(Options& opts, const std::string& option, bool value) {
5262
5263
  opts.strings.stringEagerLen = value;
5264
  opts.strings.stringEagerLenWasSetByUser = true;
5265
  Trace("options") << "user assigned option stringEagerLen = " << value << std::endl;
5266
}
5267
5268
552
void assign_strings_stringExp(Options& opts, const std::string& option, bool value) {
5269
5270
552
  opts.strings.stringExp = value;
5271
552
  opts.strings.stringExpWasSetByUser = true;
5272
552
  Trace("options") << "user assigned option stringExp = " << value << std::endl;
5273
552
}
5274
5275
void assign_strings_stringFlatForms(Options& opts, const std::string& option, bool value) {
5276
5277
  opts.strings.stringFlatForms = value;
5278
  opts.strings.stringFlatFormsWasSetByUser = true;
5279
  Trace("options") << "user assigned option stringFlatForms = " << value << std::endl;
5280
}
5281
5282
51
void assign_strings_stringFMF(Options& opts, const std::string& option, bool value) {
5283
5284
51
  opts.strings.stringFMF = value;
5285
51
  opts.strings.stringFMFWasSetByUser = true;
5286
51
  Trace("options") << "user assigned option stringFMF = " << value << std::endl;
5287
51
}
5288
5289
void assign_strings_stringGuessModel(Options& opts, const std::string& option, bool value) {
5290
5291
  opts.strings.stringGuessModel = value;
5292
  opts.strings.stringGuessModelWasSetByUser = true;
5293
  Trace("options") << "user assigned option stringGuessModel = " << value << std::endl;
5294
}
5295
5296
void assign_strings_stringInferAsLemmas(Options& opts, const std::string& option, bool value) {
5297
5298
  opts.strings.stringInferAsLemmas = value;
5299
  opts.strings.stringInferAsLemmasWasSetByUser = true;
5300
  Trace("options") << "user assigned option stringInferAsLemmas = " << value << std::endl;
5301
}
5302
5303
void assign_strings_stringInferSym(Options& opts, const std::string& option, bool value) {
5304
5305
  opts.strings.stringInferSym = value;
5306
  opts.strings.stringInferSymWasSetByUser = true;
5307
  Trace("options") << "user assigned option stringInferSym = " << value << std::endl;
5308
}
5309
5310
32
void assign_strings_stringLazyPreproc(Options& opts, const std::string& option, bool value) {
5311
5312
32
  opts.strings.stringLazyPreproc = value;
5313
32
  opts.strings.stringLazyPreprocWasSetByUser = true;
5314
32
  Trace("options") << "user assigned option stringLazyPreproc = " << value << std::endl;
5315
32
}
5316
5317
void assign_strings_stringLenNorm(Options& opts, const std::string& option, bool value) {
5318
5319
  opts.strings.stringLenNorm = value;
5320
  opts.strings.stringLenNormWasSetByUser = true;
5321
  Trace("options") << "user assigned option stringLenNorm = " << value << std::endl;
5322
}
5323
5324
void assign_strings_stringLenPropCsp(Options& opts, const std::string& option, bool value) {
5325
5326
  opts.strings.stringLenPropCsp = value;
5327
  opts.strings.stringLenPropCspWasSetByUser = true;
5328
  Trace("options") << "user assigned option stringLenPropCsp = " << value << std::endl;
5329
}
5330
5331
void assign_strings_stringMinPrefixExplain(Options& opts, const std::string& option, bool value) {
5332
5333
  opts.strings.stringMinPrefixExplain = value;
5334
  opts.strings.stringMinPrefixExplainWasSetByUser = true;
5335
  Trace("options") << "user assigned option stringMinPrefixExplain = " << value << std::endl;
5336
}
5337
5338
void assign_strings_stringProcessLoopMode(Options& opts, const std::string& option, const std::string& optionarg) {
5339
  auto value = stringToProcessLoopMode(optionarg);
5340
5341
  opts.strings.stringProcessLoopMode = value;
5342
  opts.strings.stringProcessLoopModeWasSetByUser = true;
5343
  Trace("options") << "user assigned option stringProcessLoopMode = " << value << std::endl;
5344
}
5345
5346
void assign_strings_stringRExplainLemmas(Options& opts, const std::string& option, bool value) {
5347
5348
  opts.strings.stringRExplainLemmas = value;
5349
  opts.strings.stringRExplainLemmasWasSetByUser = true;
5350
  Trace("options") << "user assigned option stringRExplainLemmas = " << value << std::endl;
5351
}
5352
5353
void assign_strings_stringUnifiedVSpt(Options& opts, const std::string& option, bool value) {
5354
5355
  opts.strings.stringUnifiedVSpt = value;
5356
  opts.strings.stringUnifiedVSptWasSetByUser = true;
5357
  Trace("options") << "user assigned option stringUnifiedVSpt = " << value << std::endl;
5358
}
5359
5360
2
void assign_theory_assignFunctionValues(Options& opts, const std::string& option, bool value) {
5361
5362
2
  opts.theory.assignFunctionValues = value;
5363
2
  opts.theory.assignFunctionValuesWasSetByUser = true;
5364
2
  Trace("options") << "user assigned option assignFunctionValues = " << value << std::endl;
5365
2
}
5366
5367
void assign_theory_condenseFunctionValues(Options& opts, const std::string& option, bool value) {
5368
5369
  opts.theory.condenseFunctionValues = value;
5370
  opts.theory.condenseFunctionValuesWasSetByUser = true;
5371
  Trace("options") << "user assigned option condenseFunctionValues = " << value << std::endl;
5372
}
5373
5374
56
void assign_theory_eeMode(Options& opts, const std::string& option, const std::string& optionarg) {
5375
56
  auto value = stringToEqEngineMode(optionarg);
5376
5377
56
  opts.theory.eeMode = value;
5378
56
  opts.theory.eeModeWasSetByUser = true;
5379
56
  Trace("options") << "user assigned option eeMode = " << value << std::endl;
5380
56
}
5381
5382
void assign_theory_relevanceFilter(Options& opts, const std::string& option, bool value) {
5383
5384
  opts.theory.relevanceFilter = value;
5385
  opts.theory.relevanceFilterWasSetByUser = true;
5386
  Trace("options") << "user assigned option relevanceFilter = " << value << std::endl;
5387
}
5388
5389
void assign_theory_tcMode(Options& opts, const std::string& option, const std::string& optionarg) {
5390
  auto value = stringToTcMode(optionarg);
5391
5392
  opts.theory.tcMode = value;
5393
  opts.theory.tcModeWasSetByUser = true;
5394
  Trace("options") << "user assigned option tcMode = " << value << std::endl;
5395
}
5396
5397
5
void assign_theory_theoryOfMode(Options& opts, const std::string& option, const std::string& optionarg) {
5398
5
  auto value = stringToTheoryOfMode(optionarg);
5399
5400
5
  opts.theory.theoryOfMode = value;
5401
5
  opts.theory.theoryOfModeWasSetByUser = true;
5402
5
  Trace("options") << "user assigned option theoryOfMode = " << value << std::endl;
5403
5
}
5404
5405
void assign_uf_ufSymmetryBreaker(Options& opts, const std::string& option, bool value) {
5406
5407
  opts.uf.ufSymmetryBreaker = value;
5408
  opts.uf.ufSymmetryBreakerWasSetByUser = true;
5409
  Trace("options") << "user assigned option ufSymmetryBreaker = " << value << std::endl;
5410
}
5411
5412
void assign_uf_ufHo(Options& opts, const std::string& option, bool value) {
5413
5414
  opts.uf.ufHo = value;
5415
  opts.uf.ufHoWasSetByUser = true;
5416
  Trace("options") << "user assigned option ufHo = " << value << std::endl;
5417
}
5418
5419
void assign_uf_ufHoExt(Options& opts, const std::string& option, bool value) {
5420
5421
  opts.uf.ufHoExt = value;
5422
  opts.uf.ufHoExtWasSetByUser = true;
5423
  Trace("options") << "user assigned option ufHoExt = " << value << std::endl;
5424
}
5425
5426
void assign_uf_ufssAbortCardinality(Options& opts, const std::string& option, const std::string& optionarg) {
5427
  auto value = handleOption<int64_t>("uf-ss-abort-card", option, optionarg);
5428
5429
  opts.uf.ufssAbortCardinality = value;
5430
  opts.uf.ufssAbortCardinalityWasSetByUser = true;
5431
  Trace("options") << "user assigned option ufssAbortCardinality = " << value << std::endl;
5432
}
5433
5434
void assign_uf_ufssFairness(Options& opts, const std::string& option, bool value) {
5435
5436
  opts.uf.ufssFairness = value;
5437
  opts.uf.ufssFairnessWasSetByUser = true;
5438
  Trace("options") << "user assigned option ufssFairness = " << value << std::endl;
5439
}
5440
5441
4
void assign_uf_ufssFairnessMonotone(Options& opts, const std::string& option, bool value) {
5442
5443
4
  opts.uf.ufssFairnessMonotone = value;
5444
4
  opts.uf.ufssFairnessMonotoneWasSetByUser = true;
5445
4
  Trace("options") << "user assigned option ufssFairnessMonotone = " << value << std::endl;
5446
4
}
5447
5448
void assign_uf_ufssTotalityLimited(Options& opts, const std::string& option, const std::string& optionarg) {
5449
  auto value = handleOption<int64_t>("uf-ss-totality-limited", option, optionarg);
5450
5451
  opts.uf.ufssTotalityLimited = value;
5452
  opts.uf.ufssTotalityLimitedWasSetByUser = true;
5453
  Trace("options") << "user assigned option ufssTotalityLimited = " << value << std::endl;
5454
}
5455
5456
void assign_uf_ufssTotalitySymBreak(Options& opts, const std::string& option, bool value) {
5457
5458
  opts.uf.ufssTotalitySymBreak = value;
5459
  opts.uf.ufssTotalitySymBreakWasSetByUser = true;
5460
  Trace("options") << "user assigned option ufssTotalitySymBreak = " << value << std::endl;
5461
}
5462
5463
7
void assign_uf_ufssMode(Options& opts, const std::string& option, const std::string& optionarg) {
5464
7
  auto value = stringToUfssMode(optionarg);
5465
5466
7
  opts.uf.ufssMode = value;
5467
7
  opts.uf.ufssModeWasSetByUser = true;
5468
7
  Trace("options") << "user assigned option ufssMode = " << value << std::endl;
5469
7
}
5470
// clang-format off
5471
5472
8796
void parseInternal(Options& opts, int argc,
5473
                                    char* argv[],
5474
                                    std::vector<std::string>& nonoptions)
5475
{
5476
8796
  Assert(argv != nullptr);
5477
8796
  if(Debug.isOn("options")) {
5478
    Debug("options") << "starting a new parseInternal with "
5479
                     << argc << " arguments" << std::endl;
5480
    for( int i = 0; i < argc ; i++ ){
5481
      Assert(argv[i] != NULL);
5482
      Debug("options") << "  argv[" << i << "] = " << argv[i] << std::endl;
5483
    }
5484
  }
5485
5486
  // Reset getopt(), in the case of multiple calls to parse().
5487
  // This can be = 1 in newer GNU getopt, but older (< 2007) require = 0.
5488
8796
  optind = 0;
5489
#if HAVE_DECL_OPTRESET
5490
  optreset = 1; // on BSD getopt() (e.g. Mac OS), might need this
5491
#endif /* HAVE_DECL_OPTRESET */
5492
5493
  // We must parse the binary name, which is manually ignored below. Setting
5494
  // this to 1 leads to incorrect behavior on some platforms.
5495
8796
  int main_optind = 0;
5496
  int old_optind;
5497
5498
5499
  while(true) { // Repeat Forever
5500
5501
24260
    optopt = 0;
5502
32225
    std::string option, optionarg;
5503
5504
24260
    optind = main_optind;
5505
24260
    old_optind = main_optind;
5506
5507
    // If we encounter an element that is not at zero and does not start
5508
    // with a "-", this is a non-option. We consume this element as a
5509
    // non-option.
5510
39660
    if (main_optind > 0 && main_optind < argc &&
5511
9271
        argv[main_optind][0] != '-') {
5512
12258
      Debug("options") << "enqueueing " << argv[main_optind]
5513
6129
                       << " as a non-option." << std::endl;
5514
6129
      nonoptions.push_back(argv[main_optind]);
5515
6129
      ++main_optind;
5516
6129
      continue;
5517
    }
5518
5519
5520
36262
    Debug("options") << "[ before, main_optind == " << main_optind << " ]"
5521
18131
                     << std::endl;
5522
18131
    Debug("options") << "[ before, optind == " << optind << " ]" << std::endl;
5523
36262
    Debug("options") << "[ argc == " << argc << ", argv == " << argv << " ]"
5524
18131
                     << std::endl;
5525
    // clang-format off
5526
18131
    int c = getopt_long(argc, argv,
5527
                        "+:d:iL:o:qt:vhs:Vm",
5528
18131
                        cmdlineOptions, NULL);
5529
    // clang-format on
5530
5531
18131
    main_optind = optind;
5532
5533
36262
    Debug("options") << "[ got " << int(c) << " (" << char(c) << ") ]"
5534
18131
                     << "[ next option will be at pos: " << optind << " ]"
5535
18131
                     << std::endl;
5536
5537
    // The initial getopt_long call should always determine that argv[0]
5538
    // is not an option and returns -1. We always manually advance beyond
5539
    // this element.
5540
19502
    if ( old_optind == 0  && c == -1 ) {
5541
1371
      Assert(main_optind > 0);
5542
1371
      continue;
5543
    }
5544
5545
16760
    if ( c == -1 ) {
5546
6193
      if(Debug.isOn("options")) {
5547
        Debug("options") << "done with option parsing" << std::endl;
5548
        for(int index = optind; index < argc; ++index) {
5549
          Debug("options") << "remaining " << argv[index] << std::endl;
5550
        }
5551
      }
5552
6193
      break;
5553
    }
5554
5555
10567
    option = argv[old_optind == 0 ? 1 : old_optind];
5556
10567
    optionarg = (optarg == NULL) ? "" : optarg;
5557
5558
21134
    Debug("preemptGetopt") << "processing option " << c
5559
10567
                           << " (`" << char(c) << "'), " << option << std::endl;
5560
5561
    // clang-format off
5562
10567
    switch(c)
5563
    {
5564
case 256: // --approx-branch-depth=N
5565
        assign_arith_maxApproxDepth(opts, option, optionarg);
5566
      break;
5567
2
    case 257: // --arith-brab
5568
2
        assign_arith_brabTest(opts, option, true);
5569
2
      break;
5570
2
    case 258:// --no-arith-brab
5571
2
        assign_arith_brabTest(opts, option, false);
5572
2
      break;
5573
    case 259: // --arith-cong-man
5574
        assign_arith_arithCongMan(opts, option, true);
5575
      break;
5576
    case 260:// --no-arith-cong-man
5577
        assign_arith_arithCongMan(opts, option, false);
5578
      break;
5579
6
    case 261: // --arith-eq-solver
5580
6
        assign_arith_arithEqSolver(opts, option, true);
5581
6
      break;
5582
    case 262:// --no-arith-eq-solver
5583
        assign_arith_arithEqSolver(opts, option, false);
5584
      break;
5585
    case 263: // --arith-no-partial-fun
5586
        assign_arith_arithNoPartialFun(opts, option, true);
5587
      break;
5588
    case 264:// --no-arith-no-partial-fun
5589
        assign_arith_arithNoPartialFun(opts, option, false);
5590
      break;
5591
    case 265: // --arith-prop-clauses=N
5592
        assign_arith_arithPropAsLemmaLength(opts, option, optionarg);
5593
      break;
5594
    case 266: // --arith-prop=MODE
5595
        assign_arith_arithPropagationMode(opts, option, optionarg);
5596
      break;
5597
4
    case 267: // --arith-rewrite-equalities
5598
4
        assign_arith_arithRewriteEq(opts, option, true);
5599
4
      break;
5600
    case 268:// --no-arith-rewrite-equalities
5601
        assign_arith_arithRewriteEq(opts, option, false);
5602
      break;
5603
    case 269: // --collect-pivot-stats
5604
        assign_arith_collectPivots(opts, option, true);
5605
      break;
5606
    case 270:// --no-collect-pivot-stats
5607
        assign_arith_collectPivots(opts, option, false);
5608
      break;
5609
    case 271: // --cut-all-bounded
5610
        assign_arith_doCutAllBounded(opts, option, true);
5611
      break;
5612
    case 272:// --no-cut-all-bounded
5613
        assign_arith_doCutAllBounded(opts, option, false);
5614
      break;
5615
    case 273: // --dio-decomps
5616
        assign_arith_exportDioDecompositions(opts, option, true);
5617
      break;
5618
    case 274:// --no-dio-decomps
5619
        assign_arith_exportDioDecompositions(opts, option, false);
5620
      break;
5621
    case 275: // --dio-repeat
5622
        assign_arith_dioRepeat(opts, option, true);
5623
      break;
5624
    case 276:// --no-dio-repeat
5625
        assign_arith_dioRepeat(opts, option, false);
5626
      break;
5627
    case 277: // --dio-solver
5628
        assign_arith_arithDioSolver(opts, option, true);
5629
      break;
5630
    case 278:// --no-dio-solver
5631
        assign_arith_arithDioSolver(opts, option, false);
5632
      break;
5633
    case 279: // --dio-turns=N
5634
        assign_arith_dioSolverTurns(opts, option, optionarg);
5635
      break;
5636
    case 280: // --error-selection-rule=RULE
5637
        assign_arith_arithErrorSelectionRule(opts, option, optionarg);
5638
      break;
5639
    case 281: // --fc-penalties
5640
        assign_arith_havePenalties(opts, option, true);
5641
      break;
5642
    case 282:// --no-fc-penalties
5643
        assign_arith_havePenalties(opts, option, false);
5644
      break;
5645
    case 283: // --heuristic-pivots=N
5646
        assign_arith_arithHeuristicPivots(opts, option, optionarg);
5647
      break;
5648
    case 284: // --lemmas-on-replay-failure
5649
        assign_arith_replayFailureLemma(opts, option, true);
5650
      break;
5651
    case 285:// --no-lemmas-on-replay-failure
5652
        assign_arith_replayFailureLemma(opts, option, false);
5653
      break;
5654
    case 286: // --maxCutsInContext=N
5655
        assign_arith_maxCutsInContext(opts, option, optionarg);
5656
      break;
5657
8
    case 287: // --miplib-trick
5658
8
        assign_arith_arithMLTrick(opts, option, true);
5659
8
      break;
5660
    case 288:// --no-miplib-trick
5661
        assign_arith_arithMLTrick(opts, option, false);
5662
      break;
5663
    case 289: // --miplib-trick-subs=N
5664
        assign_arith_arithMLTrickSubstitutions(opts, option, optionarg);
5665
      break;
5666
    case 290: // --new-prop
5667
        assign_arith_newProp(opts, option, true);
5668
      break;
5669
8
    case 291:// --no-new-prop
5670
8
        assign_arith_newProp(opts, option, false);
5671
8
      break;
5672
5
    case 292: // --nl-cad
5673
5
        assign_arith_nlCad(opts, option, true);
5674
5
      break;
5675
    case 293:// --no-nl-cad
5676
        assign_arith_nlCad(opts, option, false);
5677
      break;
5678
    case 294: // --nl-cad-initial
5679
        assign_arith_nlCadUseInitial(opts, option, true);
5680
      break;
5681
    case 295:// --no-nl-cad-initial
5682
        assign_arith_nlCadUseInitial(opts, option, false);
5683
      break;
5684
    case 296: // --nl-cad-lift=MODE
5685
        assign_arith_nlCadLifting(opts, option, optionarg);
5686
      break;
5687
    case 297: // --nl-cad-proj=MODE
5688
        assign_arith_nlCadProjection(opts, option, optionarg);
5689
      break;
5690
    case 298: // --nl-ext-ent-conf
5691
        assign_arith_nlExtEntailConflicts(opts, option, true);
5692
      break;
5693
    case 299:// --no-nl-ext-ent-conf
5694
        assign_arith_nlExtEntailConflicts(opts, option, false);
5695
      break;
5696
    case 300: // --nl-ext-factor
5697
        assign_arith_nlExtFactor(opts, option, true);
5698
      break;
5699
    case 301:// --no-nl-ext-factor
5700
        assign_arith_nlExtFactor(opts, option, false);
5701
      break;
5702
    case 302: // --nl-ext-inc-prec
5703
        assign_arith_nlExtIncPrecision(opts, option, true);
5704
      break;
5705
2
    case 303:// --no-nl-ext-inc-prec
5706
2
        assign_arith_nlExtIncPrecision(opts, option, false);
5707
2
      break;
5708
2
    case 304: // --nl-ext-purify
5709
2
        assign_arith_nlExtPurify(opts, option, true);
5710
2
      break;
5711
    case 305:// --no-nl-ext-purify
5712
        assign_arith_nlExtPurify(opts, option, false);
5713
      break;
5714
    case 306: // --nl-ext-rbound
5715
        assign_arith_nlExtResBound(opts, option, true);
5716
      break;
5717
    case 307:// --no-nl-ext-rbound
5718
        assign_arith_nlExtResBound(opts, option, false);
5719
      break;
5720
    case 308: // --nl-ext-rewrite
5721
        assign_arith_nlExtRewrites(opts, option, true);
5722
      break;
5723
    case 309:// --no-nl-ext-rewrite
5724
        assign_arith_nlExtRewrites(opts, option, false);
5725
      break;
5726
    case 310: // --nl-ext-split-zero
5727
        assign_arith_nlExtSplitZero(opts, option, true);
5728
      break;
5729
    case 311:// --no-nl-ext-split-zero
5730
        assign_arith_nlExtSplitZero(opts, option, false);
5731
      break;
5732
    case 312: // --nl-ext-tf-taylor-deg=N
5733
        assign_arith_nlExtTfTaylorDegree(opts, option, optionarg);
5734
      break;
5735
39
    case 313: // --nl-ext-tf-tplanes
5736
39
        assign_arith_nlExtTfTangentPlanes(opts, option, true);
5737
39
      break;
5738
2
    case 314:// --no-nl-ext-tf-tplanes
5739
2
        assign_arith_nlExtTfTangentPlanes(opts, option, false);
5740
2
      break;
5741
42
    case 315: // --nl-ext-tplanes
5742
42
        assign_arith_nlExtTangentPlanes(opts, option, true);
5743
42
      break;
5744
    case 316:// --no-nl-ext-tplanes
5745
        assign_arith_nlExtTangentPlanes(opts, option, false);
5746
      break;
5747
    case 317: // --nl-ext-tplanes-interleave
5748
        assign_arith_nlExtTangentPlanesInterleave(opts, option, true);
5749
      break;
5750
    case 318:// --no-nl-ext-tplanes-interleave
5751
        assign_arith_nlExtTangentPlanesInterleave(opts, option, false);
5752
      break;
5753
125
    case 319: // --nl-ext=MODE
5754
125
        assign_arith_nlExt(opts, option, optionarg);
5755
125
      break;
5756
2
    case 320: // --nl-icp
5757
2
        assign_arith_nlICP(opts, option, true);
5758
2
      break;
5759
    case 321:// --no-nl-icp
5760
        assign_arith_nlICP(opts, option, false);
5761
      break;
5762
10
    case 322: // --nl-rlv=MODE
5763
10
        assign_arith_nlRlvMode(opts, option, optionarg);
5764
10
      break;
5765
2
    case 323: // --pb-rewrites
5766
2
        assign_arith_pbRewrites(opts, option, true);
5767
2
      break;
5768
    case 324:// --no-pb-rewrites
5769
        assign_arith_pbRewrites(opts, option, false);
5770
      break;
5771
    case 325: // --pivot-threshold=N
5772
        assign_arith_arithPivotThreshold(opts, option, optionarg);
5773
      break;
5774
    case 326: // --pp-assert-max-sub-size=N
5775
        assign_arith_ppAssertMaxSubSize(opts, option, optionarg);
5776
      break;
5777
    case 327: // --prop-row-length=N
5778
        assign_arith_arithPropagateMaxLength(opts, option, optionarg);
5779
      break;
5780
    case 328: // --replay-early-close-depth=N
5781
        assign_arith_replayEarlyCloseDepths(opts, option, optionarg);
5782
      break;
5783
    case 329: // --replay-failure-penalty=N
5784
        assign_arith_replayFailurePenalty(opts, option, optionarg);
5785
      break;
5786
    case 330: // --replay-lemma-reject-cut=N
5787
        assign_arith_lemmaRejectCutSize(opts, option, optionarg);
5788
      break;
5789
    case 331: // --replay-num-err-penalty=N
5790
        assign_arith_replayNumericFailurePenalty(opts, option, optionarg);
5791
      break;
5792
    case 332: // --replay-reject-cut=N
5793
        assign_arith_replayRejectCutSize(opts, option, optionarg);
5794
      break;
5795
    case 333: // --replay-soi-major-threshold-pen=N
5796
        assign_arith_soiApproxMajorFailurePen(opts, option, optionarg);
5797
      break;
5798
    case 334: // --replay-soi-major-threshold=T
5799
        assign_arith_soiApproxMajorFailure(opts, option, optionarg);
5800
      break;
5801
    case 335: // --replay-soi-minor-threshold-pen=N
5802
        assign_arith_soiApproxMinorFailurePen(opts, option, optionarg);
5803
      break;
5804
    case 336: // --replay-soi-minor-threshold=T
5805
        assign_arith_soiApproxMinorFailure(opts, option, optionarg);
5806
      break;
5807
    case 337: // --restrict-pivots
5808
        assign_arith_restrictedPivots(opts, option, true);
5809
      break;
5810
    case 338:// --no-restrict-pivots
5811
        assign_arith_restrictedPivots(opts, option, false);
5812
      break;
5813
    case 339: // --revert-arith-models-on-unsat
5814
        assign_arith_revertArithModels(opts, option, true);
5815
      break;
5816
    case 340:// --no-revert-arith-models-on-unsat
5817
        assign_arith_revertArithModels(opts, option, false);
5818
      break;
5819
    case 341: // --rr-turns=N
5820
        assign_arith_rrTurns(opts, option, optionarg);
5821
      break;
5822
    case 342: // --se-solve-int
5823
        assign_arith_trySolveIntStandardEffort(opts, option, true);
5824
      break;
5825
    case 343:// --no-se-solve-int
5826
        assign_arith_trySolveIntStandardEffort(opts, option, false);
5827
      break;
5828
    case 344: // --simplex-check-period=N
5829
        assign_arith_arithSimplexCheckPeriod(opts, option, optionarg);
5830
      break;
5831
    case 345: // --soi-qe
5832
        assign_arith_soiQuickExplain(opts, option, true);
5833
      break;
5834
    case 346:// --no-soi-qe
5835
        assign_arith_soiQuickExplain(opts, option, false);
5836
      break;
5837
    case 347: // --standard-effort-variable-order-pivots=N
5838
        assign_arith_arithStandardCheckVarOrderPivots(opts, option, optionarg);
5839
      break;
5840
    case 348: // --unate-lemmas=MODE
5841
        assign_arith_arithUnateLemmaMode(opts, option, optionarg);
5842
      break;
5843
    case 349: // --use-approx
5844
        assign_arith_useApprox(opts, option, true);
5845
      break;
5846
    case 350:// --no-use-approx
5847
        assign_arith_useApprox(opts, option, false);
5848
      break;
5849
    case 351: // --use-fcsimplex
5850
        assign_arith_useFC(opts, option, true);
5851
      break;
5852
    case 352:// --no-use-fcsimplex
5853
        assign_arith_useFC(opts, option, false);
5854
      break;
5855
    case 353: // --use-soi
5856
        assign_arith_useSOI(opts, option, true);
5857
      break;
5858
    case 354:// --no-use-soi
5859
        assign_arith_useSOI(opts, option, false);
5860
      break;
5861
    case 355: // --arrays-config=N
5862
        assign_arrays_arraysConfig(opts, option, optionarg);
5863
      break;
5864
    case 356: // --arrays-eager-index
5865
        assign_arrays_arraysEagerIndexSplitting(opts, option, true);
5866
      break;
5867
    case 357:// --no-arrays-eager-index
5868
        assign_arrays_arraysEagerIndexSplitting(opts, option, false);
5869
      break;
5870
    case 358: // --arrays-eager-lemmas
5871
        assign_arrays_arraysEagerLemmas(opts, option, true);
5872
      break;
5873
    case 359:// --no-arrays-eager-lemmas
5874
        assign_arrays_arraysEagerLemmas(opts, option, false);
5875
      break;
5876
3
    case 360: // --arrays-exp
5877
3
        assign_arrays_arraysExp(opts, option, true);
5878
3
      break;
5879
    case 361:// --no-arrays-exp
5880
        assign_arrays_arraysExp(opts, option, false);
5881
      break;
5882
    case 362: // --arrays-model-based
5883
        assign_arrays_arraysModelBased(opts, option, true);
5884
      break;
5885
    case 363:// --no-arrays-model-based
5886
        assign_arrays_arraysModelBased(opts, option, false);
5887
      break;
5888
    case 364: // --arrays-optimize-linear
5889
        assign_arrays_arraysOptimizeLinear(opts, option, true);
5890
      break;
5891
    case 365:// --no-arrays-optimize-linear
5892
        assign_arrays_arraysOptimizeLinear(opts, option, false);
5893
      break;
5894
    case 366: // --arrays-prop=N
5895
        assign_arrays_arraysPropagate(opts, option, optionarg);
5896
      break;
5897
    case 367: // --arrays-reduce-sharing
5898
        assign_arrays_arraysReduceSharing(opts, option, true);
5899
      break;
5900
    case 368:// --no-arrays-reduce-sharing
5901
        assign_arrays_arraysReduceSharing(opts, option, false);
5902
      break;
5903
    case 369: // --arrays-weak-equiv
5904
        assign_arrays_arraysWeakEquivalence(opts, option, true);
5905
      break;
5906
    case 370:// --no-arrays-weak-equiv
5907
        assign_arrays_arraysWeakEquivalence(opts, option, false);
5908
      break;
5909
    case 'd':
5910
    case 371: // --debug=TAG
5911
    opts.handler().enableDebugTag("debug", option, optionarg);
5912
      break;
5913
    case 372: // --err=erroutput
5914
    case 373: // --diagnostic-output-channel
5915
        assign_base_err(opts, option, optionarg);
5916
      break;
5917
    case 374: // --in=input
5918
        assign_base_in(opts, option, optionarg);
5919
      break;
5920
664
    case 'i':
5921
    case 375: // --incremental
5922
664
        assign_base_incrementalSolving(opts, option, true);
5923
664
      break;
5924
    case 376:// --no-incremental
5925
        assign_base_incrementalSolving(opts, option, false);
5926
      break;
5927
227
    case 'L':
5928
    case 377: // --lang=LANG
5929
    case 378: // --input-language
5930
227
        assign_base_inputLanguage(opts, option, optionarg);
5931
227
      break;
5932
    case 379: // --out=output
5933
    case 380: // --regular-output-channel
5934
        assign_base_out(opts, option, optionarg);
5935
      break;
5936
64
    case 381: // --output-lang=LANG
5937
    case 382: // --output-language
5938
64
        assign_base_outputLanguage(opts, option, optionarg);
5939
64
      break;
5940
3
    case 'o':
5941
    case 383: // --output=TAG
5942
3
    opts.handler().enableOutputTag("output", option, optionarg);
5943
3
      break;
5944
    case 384: // --parse-only
5945
        assign_base_parseOnly(opts, option, true);
5946
      break;
5947
    case 385:// --no-parse-only
5948
        assign_base_parseOnly(opts, option, false);
5949
      break;
5950
3
    case 386: // --preprocess-only
5951
3
        assign_base_preprocessOnly(opts, option, true);
5952
3
      break;
5953
    case 387:// --no-preprocess-only
5954
        assign_base_preprocessOnly(opts, option, false);
5955
      break;
5956
2
    case 388: // --print-success
5957
2
        assign_base_printSuccess(opts, option, true);
5958
2
      break;
5959
    case 389:// --no-print-success
5960
        assign_base_printSuccess(opts, option, false);
5961
      break;
5962
190
    case 'q':
5963
    case 390: // --quiet
5964
190
    opts.handler().decreaseVerbosity("quiet", option);
5965
190
      break;
5966
    case 391: // --rlimit-per=N
5967
    case 392: // --reproducible-resource-limit
5968
        assign_base_perCallResourceLimit(opts, option, optionarg);
5969
      break;
5970
    case 393: // --rlimit=N
5971
        assign_base_cumulativeResourceLimit(opts, option, optionarg);
5972
      break;
5973
    case 394: // --rweight=VAL=N
5974
    opts.handler().setResourceWeight("rweight", option, optionarg);
5975
      break;
5976
    case 395: // --stats
5977
        assign_base_statistics(opts, option, true);
5978
      break;
5979
    case 396:// --no-stats
5980
        assign_base_statistics(opts, option, false);
5981
      break;
5982
    case 397: // --stats-all
5983
        assign_base_statisticsAll(opts, option, true);
5984
      break;
5985
    case 398:// --no-stats-all
5986
        assign_base_statisticsAll(opts, option, false);
5987
      break;
5988
    case 399: // --stats-every-query
5989
        assign_base_statisticsEveryQuery(opts, option, true);
5990
      break;
5991
    case 400:// --no-stats-every-query
5992
        assign_base_statisticsEveryQuery(opts, option, false);
5993
      break;
5994
    case 401: // --stats-expert
5995
        assign_base_statisticsExpert(opts, option, true);
5996
      break;
5997
    case 402:// --no-stats-expert
5998
        assign_base_statisticsExpert(opts, option, false);
5999
      break;
6000
6
    case 403: // --tlimit-per=MS
6001
6
        assign_base_perCallMillisecondLimit(opts, option, optionarg);
6002
6
      break;
6003
    case 404: // --tlimit=MS
6004
        assign_base_cumulativeMillisecondLimit(opts, option, optionarg);
6005
      break;
6006
    case 't':
6007
    case 405: // --trace=TAG
6008
    opts.handler().enableTraceTag("trace", option, optionarg);
6009
      break;
6010
3
    case 'v':
6011
    case 406: // --verbose
6012
3
    opts.handler().increaseVerbosity("verbose", option);
6013
3
      break;
6014
    case 407: // --verbosity=N
6015
        assign_base_verbosity(opts, option, optionarg);
6016
      break;
6017
    case 408: // --bitblast-aig
6018
        assign_bv_bitvectorAig(opts, option, true);
6019
      break;
6020
    case 409:// --no-bitblast-aig
6021
        assign_bv_bitvectorAig(opts, option, false);
6022
      break;
6023
38
    case 410: // --bitblast=MODE
6024
38
        assign_bv_bitblastMode(opts, option, optionarg);
6025
38
      break;
6026
    case 411: // --bitwise-eq
6027
        assign_bv_bitwiseEq(opts, option, true);
6028
      break;
6029
    case 412:// --no-bitwise-eq
6030
        assign_bv_bitwiseEq(opts, option, false);
6031
      break;
6032
12
    case 413: // --bool-to-bv=MODE
6033
12
        assign_bv_boolToBitvector(opts, option, optionarg);
6034
12
      break;
6035
4
    case 414: // --bv-abstraction
6036
4
        assign_bv_bvAbstraction(opts, option, true);
6037
4
      break;
6038
    case 415:// --no-bv-abstraction
6039
        assign_bv_bvAbstraction(opts, option, false);
6040
      break;
6041
    case 416: // --bv-aig-simp=COMMAND
6042
        assign_bv_bitvectorAigSimplifications(opts, option, optionarg);
6043
      break;
6044
    case 417: // --bv-alg-extf
6045
        assign_bv_bvAlgExtf(opts, option, true);
6046
      break;
6047
    case 418:// --no-bv-alg-extf
6048
        assign_bv_bvAlgExtf(opts, option, false);
6049
      break;
6050
    case 419: // --bv-algebraic-budget=N
6051
        assign_bv_bitvectorAlgebraicBudget(opts, option, optionarg);
6052
      break;
6053
    case 420: // --bv-algebraic-solver
6054
        assign_bv_bitvectorAlgebraicSolver(opts, option, true);
6055
      break;
6056
    case 421:// --no-bv-algebraic-solver
6057
        assign_bv_bitvectorAlgebraicSolver(opts, option, false);
6058
      break;
6059
6
    case 422: // --bv-assert-input
6060
6
        assign_bv_bvAssertInput(opts, option, true);
6061
6
      break;
6062
    case 423:// --no-bv-assert-input
6063
        assign_bv_bvAssertInput(opts, option, false);
6064
      break;
6065
    case 424: // --bv-eager-explanations
6066
        assign_bv_bvEagerExplanations(opts, option, true);
6067
      break;
6068
    case 425:// --no-bv-eager-explanations
6069
        assign_bv_bvEagerExplanations(opts, option, false);
6070
      break;
6071
    case 426: // --bv-eq-solver
6072
        assign_bv_bitvectorEqualitySolver(opts, option, true);
6073
      break;
6074
2
    case 427:// --no-bv-eq-solver
6075
2
        assign_bv_bitvectorEqualitySolver(opts, option, false);
6076
2
      break;
6077
    case 428: // --bv-extract-arith
6078
        assign_bv_bvExtractArithRewrite(opts, option, true);
6079
      break;
6080
    case 429:// --no-bv-extract-arith
6081
        assign_bv_bvExtractArithRewrite(opts, option, false);
6082
      break;
6083
    case 430: // --bv-gauss-elim
6084
        assign_bv_bvGaussElim(opts, option, true);
6085
      break;
6086
    case 431:// --no-bv-gauss-elim
6087
        assign_bv_bvGaussElim(opts, option, false);
6088
      break;
6089
    case 432: // --bv-inequality-solver
6090
        assign_bv_bitvectorInequalitySolver(opts, option, true);
6091
      break;
6092
    case 433:// --no-bv-inequality-solver
6093
        assign_bv_bitvectorInequalitySolver(opts, option, false);
6094
      break;
6095
2
    case 434: // --bv-intro-pow2
6096
2
        assign_bv_bvIntroducePow2(opts, option, true);
6097
2
      break;
6098
    case 435:// --no-bv-intro-pow2
6099
        assign_bv_bvIntroducePow2(opts, option, false);
6100
      break;
6101
    case 436: // --bv-num-func=N
6102
        assign_bv_bvNumFunc(opts, option, optionarg);
6103
      break;
6104
2
    case 437: // --bv-print-consts-as-indexed-symbols
6105
2
        assign_bv_bvPrintConstsAsIndexedSymbols(opts, option, true);
6106
2
      break;
6107
    case 438:// --no-bv-print-consts-as-indexed-symbols
6108
        assign_bv_bvPrintConstsAsIndexedSymbols(opts, option, false);
6109
      break;
6110
    case 439: // --bv-propagate
6111
        assign_bv_bitvectorPropagate(opts, option, true);
6112
      break;
6113
    case 440:// --no-bv-propagate
6114
        assign_bv_bitvectorPropagate(opts, option, false);
6115
      break;
6116
    case 441: // --bv-quick-xplain
6117
        assign_bv_bitvectorQuickXplain(opts, option, true);
6118
      break;
6119
    case 442:// --no-bv-quick-xplain
6120
        assign_bv_bitvectorQuickXplain(opts, option, false);
6121
      break;
6122
14
    case 443: // --bv-sat-solver=MODE
6123
14
        assign_bv_bvSatSolver(opts, option, optionarg);
6124
14
      break;
6125
    case 444: // --bv-skolemize
6126
        assign_bv_skolemizeArguments(opts, option, true);
6127
      break;
6128
    case 445:// --no-bv-skolemize
6129
        assign_bv_skolemizeArguments(opts, option, false);
6130
      break;
6131
44
    case 446: // --bv-solver=MODE
6132
44
        assign_bv_bvSolver(opts, option, optionarg);
6133
44
      break;
6134
10
    case 447: // --bv-to-bool
6135
10
        assign_bv_bitvectorToBool(opts, option, true);
6136
10
      break;
6137
    case 448:// --no-bv-to-bool
6138
        assign_bv_bitvectorToBool(opts, option, false);
6139
      break;
6140
    case 449: // --cdt-bisimilar
6141
        assign_datatypes_cdtBisimilar(opts, option, true);
6142
      break;
6143
    case 450:// --no-cdt-bisimilar
6144
        assign_datatypes_cdtBisimilar(opts, option, false);
6145
      break;
6146
    case 451: // --dt-binary-split
6147
        assign_datatypes_dtBinarySplit(opts, option, true);
6148
      break;
6149
    case 452:// --no-dt-binary-split
6150
        assign_datatypes_dtBinarySplit(opts, option, false);
6151
      break;
6152
    case 453: // --dt-blast-splits
6153
        assign_datatypes_dtBlastSplits(opts, option, true);
6154
      break;
6155
    case 454:// --no-dt-blast-splits
6156
        assign_datatypes_dtBlastSplits(opts, option, false);
6157
      break;
6158
    case 455: // --dt-cyclic
6159
        assign_datatypes_dtCyclic(opts, option, true);
6160
      break;
6161
    case 456:// --no-dt-cyclic
6162
        assign_datatypes_dtCyclic(opts, option, false);
6163
      break;
6164
    case 457: // --dt-force-assignment
6165
        assign_datatypes_dtForceAssignment(opts, option, true);
6166
      break;
6167
    case 458:// --no-dt-force-assignment
6168
        assign_datatypes_dtForceAssignment(opts, option, false);
6169
      break;
6170
    case 459: // --dt-infer-as-lemmas
6171
        assign_datatypes_dtInferAsLemmas(opts, option, true);
6172
      break;
6173
    case 460:// --no-dt-infer-as-lemmas
6174
        assign_datatypes_dtInferAsLemmas(opts, option, false);
6175
      break;
6176
10
    case 461: // --dt-nested-rec
6177
10
        assign_datatypes_dtNestedRec(opts, option, true);
6178
10
      break;
6179
    case 462:// --no-dt-nested-rec
6180
        assign_datatypes_dtNestedRec(opts, option, false);
6181
      break;
6182
    case 463: // --dt-polite-optimize
6183
        assign_datatypes_dtPoliteOptimize(opts, option, true);
6184
      break;
6185
    case 464:// --no-dt-polite-optimize
6186
        assign_datatypes_dtPoliteOptimize(opts, option, false);
6187
      break;
6188
5
    case 465: // --dt-rewrite-error-sel
6189
5
        assign_datatypes_dtRewriteErrorSel(opts, option, true);
6190
5
      break;
6191
    case 466:// --no-dt-rewrite-error-sel
6192
        assign_datatypes_dtRewriteErrorSel(opts, option, false);
6193
      break;
6194
    case 467: // --dt-share-sel
6195
        assign_datatypes_dtSharedSelectors(opts, option, true);
6196
      break;
6197
    case 468:// --no-dt-share-sel
6198
        assign_datatypes_dtSharedSelectors(opts, option, false);
6199
      break;
6200
11
    case 469: // --sygus-abort-size=N
6201
11
        assign_datatypes_sygusAbortSize(opts, option, optionarg);
6202
11
      break;
6203
    case 470: // --sygus-fair-max
6204
        assign_datatypes_sygusFairMax(opts, option, true);
6205
      break;
6206
    case 471:// --no-sygus-fair-max
6207
        assign_datatypes_sygusFairMax(opts, option, false);
6208
      break;
6209
2
    case 472: // --sygus-fair=MODE
6210
2
        assign_datatypes_sygusFair(opts, option, optionarg);
6211
2
      break;
6212
    case 473: // --sygus-sym-break
6213
        assign_datatypes_sygusSymBreak(opts, option, true);
6214
      break;
6215
6
    case 474:// --no-sygus-sym-break
6216
6
        assign_datatypes_sygusSymBreak(opts, option, false);
6217
6
      break;
6218
    case 475: // --sygus-sym-break-agg
6219
        assign_datatypes_sygusSymBreakAgg(opts, option, true);
6220
      break;
6221
    case 476:// --no-sygus-sym-break-agg
6222
        assign_datatypes_sygusSymBreakAgg(opts, option, false);
6223
      break;
6224
    case 477: // --sygus-sym-break-dynamic
6225
        assign_datatypes_sygusSymBreakDynamic(opts, option, true);
6226
      break;
6227
    case 478:// --no-sygus-sym-break-dynamic
6228
        assign_datatypes_sygusSymBreakDynamic(opts, option, false);
6229
      break;
6230
    case 479: // --sygus-sym-break-lazy
6231
        assign_datatypes_sygusSymBreakLazy(opts, option, true);
6232
      break;
6233
    case 480:// --no-sygus-sym-break-lazy
6234
        assign_datatypes_sygusSymBreakLazy(opts, option, false);
6235
      break;
6236
    case 481: // --sygus-sym-break-pbe
6237
        assign_datatypes_sygusSymBreakPbe(opts, option, true);
6238
      break;
6239
    case 482:// --no-sygus-sym-break-pbe
6240
        assign_datatypes_sygusSymBreakPbe(opts, option, false);
6241
      break;
6242
    case 483: // --sygus-sym-break-rlv
6243
        assign_datatypes_sygusSymBreakRlv(opts, option, true);
6244
      break;
6245
    case 484:// --no-sygus-sym-break-rlv
6246
        assign_datatypes_sygusSymBreakRlv(opts, option, false);
6247
      break;
6248
    case 485: // --decision-random-weight=N
6249
        assign_decision_decisionRandomWeight(opts, option, optionarg);
6250
      break;
6251
    case 486: // --decision-threshold=N
6252
        assign_decision_decisionThreshold(opts, option, optionarg);
6253
      break;
6254
    case 487: // --decision-use-weight
6255
        assign_decision_decisionUseWeight(opts, option, true);
6256
      break;
6257
    case 488:// --no-decision-use-weight
6258
        assign_decision_decisionUseWeight(opts, option, false);
6259
      break;
6260
    case 489: // --decision-weight-internal=HOW
6261
        assign_decision_decisionWeightInternal(opts, option, optionarg);
6262
      break;
6263
94
    case 490: // --decision=MODE
6264
    case 491: // --decision-mode
6265
94
        assign_decision_decisionMode(opts, option, optionarg);
6266
94
      break;
6267
3
    case 492: // --jh-rlv-order
6268
3
        assign_decision_jhRlvOrder(opts, option, true);
6269
3
      break;
6270
7
    case 493:// --no-jh-rlv-order
6271
7
        assign_decision_jhRlvOrder(opts, option, false);
6272
7
      break;
6273
    case 494: // --jh-skolem-rlv=MODE
6274
        assign_decision_jhSkolemRlvMode(opts, option, optionarg);
6275
      break;
6276
    case 495: // --jh-skolem=MODE
6277
        assign_decision_jhSkolemMode(opts, option, optionarg);
6278
      break;
6279
1
    case 496: // --dag-thresh=N
6280
1
        assign_expr_defaultDagThresh(opts, option, optionarg);
6281
1
      break;
6282
    case 497: // --expr-depth=N
6283
        assign_expr_defaultExprDepth(opts, option, optionarg);
6284
      break;
6285
    case 498: // --type-checking
6286
        assign_expr_typeChecking(opts, option, true);
6287
      break;
6288
    case 499:// --no-type-checking
6289
        assign_expr_typeChecking(opts, option, false);
6290
      break;
6291
22
    case 500: // --fp-exp
6292
22
        assign_fp_fpExp(opts, option, true);
6293
22
      break;
6294
    case 501:// --no-fp-exp
6295
        assign_fp_fpExp(opts, option, false);
6296
      break;
6297
3
    case 502: // --fp-lazy-wb
6298
3
        assign_fp_fpLazyWb(opts, option, true);
6299
3
      break;
6300
    case 503:// --no-fp-lazy-wb
6301
        assign_fp_fpLazyWb(opts, option, false);
6302
      break;
6303
    case 504: // --copyright
6304
    opts.handler().copyright("copyright", option);
6305
      break;
6306
12
    case 505: // --dump-instantiations
6307
12
        assign_driver_dumpInstantiations(opts, option, true);
6308
12
      break;
6309
    case 506:// --no-dump-instantiations
6310
        assign_driver_dumpInstantiations(opts, option, false);
6311
      break;
6312
    case 507: // --dump-instantiations-debug
6313
        assign_driver_dumpInstantiationsDebug(opts, option, true);
6314
      break;
6315
    case 508:// --no-dump-instantiations-debug
6316
        assign_driver_dumpInstantiationsDebug(opts, option, false);
6317
      break;
6318
6
    case 509: // --dump-models
6319
6
        assign_driver_dumpModels(opts, option, true);
6320
6
      break;
6321
    case 510:// --no-dump-models
6322
        assign_driver_dumpModels(opts, option, false);
6323
      break;
6324
    case 511: // --dump-proofs
6325
        assign_driver_dumpProofs(opts, option, true);
6326
      break;
6327
    case 512:// --no-dump-proofs
6328
        assign_driver_dumpProofs(opts, option, false);
6329
      break;
6330
    case 513: // --dump-unsat-cores
6331
        assign_driver_dumpUnsatCores(opts, option, true);
6332
      break;
6333
    case 514:// --no-dump-unsat-cores
6334
        assign_driver_dumpUnsatCores(opts, option, false);
6335
      break;
6336
3
    case 515: // --dump-unsat-cores-full
6337
3
        assign_driver_dumpUnsatCoresFull(opts, option, true);
6338
3
      break;
6339
    case 516:// --no-dump-unsat-cores-full
6340
        assign_driver_dumpUnsatCoresFull(opts, option, false);
6341
      break;
6342
    case 517: // --early-exit
6343
        assign_driver_earlyExit(opts, option, true);
6344
      break;
6345
    case 518:// --no-early-exit
6346
        assign_driver_earlyExit(opts, option, false);
6347
      break;
6348
    case 519: // --force-no-limit-cpu-while-dump
6349
        assign_driver_forceNoLimitCpuWhileDump(opts, option, true);
6350
      break;
6351
    case 520:// --no-force-no-limit-cpu-while-dump
6352
        assign_driver_forceNoLimitCpuWhileDump(opts, option, false);
6353
      break;
6354
    case 'h':
6355
    case 521: // --help
6356
        assign_driver_help(opts, option, true);
6357
      break;
6358
    case 522: // --interactive
6359
        assign_driver_interactive(opts, option, true);
6360
      break;
6361
    case 523:// --no-interactive
6362
        assign_driver_interactive(opts, option, false);
6363
      break;
6364
    case 524: // --interactive-prompt
6365
        assign_driver_interactivePrompt(opts, option, true);
6366
      break;
6367
    case 525:// --no-interactive-prompt
6368
        assign_driver_interactivePrompt(opts, option, false);
6369
      break;
6370
    case 's':
6371
    case 526: // --seed=N
6372
        assign_driver_seed(opts, option, optionarg);
6373
      break;
6374
    case 527: // --segv-spin
6375
        assign_driver_segvSpin(opts, option, true);
6376
      break;
6377
    case 528:// --no-segv-spin
6378
        assign_driver_segvSpin(opts, option, false);
6379
      break;
6380
2602
    case 529: // --show-config
6381
2602
    opts.handler().showConfiguration("show-config", option);
6382
      break;
6383
    case 530: // --show-debug-tags
6384
    opts.handler().showDebugTags("show-debug-tags", option);
6385
      break;
6386
    case 531: // --show-trace-tags
6387
    opts.handler().showTraceTags("show-trace-tags", option);
6388
      break;
6389
    case 'V':
6390
    case 532: // --version
6391
        assign_driver_version(opts, option, true);
6392
      break;
6393
    case 533: // --filesystem-access
6394
        assign_parser_filesystemAccess(opts, option, true);
6395
      break;
6396
    case 534:// --no-filesystem-access
6397
        assign_parser_filesystemAccess(opts, option, false);
6398
      break;
6399
9
    case 535: // --force-logic=LOGIC
6400
9
        assign_parser_forceLogicString(opts, option, optionarg);
6401
9
      break;
6402
    case 536: // --global-declarations
6403
        assign_parser_globalDeclarations(opts, option, true);
6404
      break;
6405
    case 537:// --no-global-declarations
6406
        assign_parser_globalDeclarations(opts, option, false);
6407
      break;
6408
    case 538: // --mmap
6409
        assign_parser_memoryMap(opts, option, true);
6410
      break;
6411
    case 539:// --no-mmap
6412
        assign_parser_memoryMap(opts, option, false);
6413
      break;
6414
    case 540: // --semantic-checks
6415
        assign_parser_semanticChecks(opts, option, true);
6416
      break;
6417
    case 541:// --no-semantic-checks
6418
        assign_parser_semanticChecks(opts, option, false);
6419
      break;
6420
9
    case 542: // --strict-parsing
6421
9
        assign_parser_strictParsing(opts, option, true);
6422
9
      break;
6423
    case 543:// --no-strict-parsing
6424
        assign_parser_strictParsing(opts, option, false);
6425
      break;
6426
    case 544: // --flatten-ho-chains
6427
        assign_printer_flattenHOChains(opts, option, true);
6428
      break;
6429
    case 545:// --no-flatten-ho-chains
6430
        assign_printer_flattenHOChains(opts, option, false);
6431
      break;
6432
    case 546: // --inst-format=MODE
6433
        assign_printer_instFormatMode(opts, option, optionarg);
6434
      break;
6435
    case 547: // --model-format=MODE
6436
        assign_printer_modelFormatMode(opts, option, optionarg);
6437
      break;
6438
9
    case 548: // --print-inst-full
6439
9
        assign_printer_printInstFull(opts, option, true);
6440
9
      break;
6441
3
    case 549:// --no-print-inst-full
6442
3
        assign_printer_printInstFull(opts, option, false);
6443
3
      break;
6444
3
    case 550: // --print-inst=MODE
6445
3
        assign_printer_printInstMode(opts, option, optionarg);
6446
3
      break;
6447
2
    case 551: // --proof-eager-checking
6448
2
        assign_proof_proofEagerChecking(opts, option, true);
6449
2
      break;
6450
    case 552:// --no-proof-eager-checking
6451
        assign_proof_proofEagerChecking(opts, option, false);
6452
      break;
6453
    case 553: // --proof-format-mode=MODE
6454
        assign_proof_proofFormatMode(opts, option, optionarg);
6455
      break;
6456
    case 554: // --proof-granularity=MODE
6457
        assign_proof_proofGranularityMode(opts, option, optionarg);
6458
      break;
6459
    case 555: // --proof-pedantic=N
6460
        assign_proof_proofPedantic(opts, option, optionarg);
6461
      break;
6462
    case 556: // --proof-print-conclusion
6463
        assign_proof_proofPrintConclusion(opts, option, true);
6464
      break;
6465
    case 557:// --no-proof-print-conclusion
6466
        assign_proof_proofPrintConclusion(opts, option, false);
6467
      break;
6468
    case 558: // --minisat-dump-dimacs
6469
        assign_prop_minisatDumpDimacs(opts, option, true);
6470
      break;
6471
    case 559:// --no-minisat-dump-dimacs
6472
        assign_prop_minisatDumpDimacs(opts, option, false);
6473
      break;
6474
    case 560: // --minisat-elimination
6475
        assign_prop_minisatUseElim(opts, option, true);
6476
      break;
6477
    case 561:// --no-minisat-elimination
6478
        assign_prop_minisatUseElim(opts, option, false);
6479
      break;
6480
    case 562: // --random-freq=P
6481
    case 563: // --random-frequency
6482
        assign_prop_satRandomFreq(opts, option, optionarg);
6483
      break;
6484
    case 564: // --random-seed=S
6485
        assign_prop_satRandomSeed(opts, option, optionarg);
6486
      break;
6487
    case 565: // --refine-conflicts
6488
        assign_prop_sat_refine_conflicts(opts, option, true);
6489
      break;
6490
    case 566:// --no-refine-conflicts
6491
        assign_prop_sat_refine_conflicts(opts, option, false);
6492
      break;
6493
    case 567: // --restart-int-base=N
6494
        assign_prop_satRestartFirst(opts, option, optionarg);
6495
      break;
6496
    case 568: // --restart-int-inc=F
6497
        assign_prop_satRestartInc(opts, option, optionarg);
6498
      break;
6499
    case 569: // --ag-miniscope-quant
6500
        assign_quantifiers_aggressiveMiniscopeQuant(opts, option, true);
6501
      break;
6502
    case 570:// --no-ag-miniscope-quant
6503
        assign_quantifiers_aggressiveMiniscopeQuant(opts, option, false);
6504
      break;
6505
3
    case 571: // --cegis-sample=MODE
6506
3
        assign_quantifiers_cegisSample(opts, option, optionarg);
6507
3
      break;
6508
17
    case 572: // --cegqi
6509
17
        assign_quantifiers_cegqi(opts, option, true);
6510
17
      break;
6511
2
    case 573:// --no-cegqi
6512
2
        assign_quantifiers_cegqi(opts, option, false);
6513
2
      break;
6514
15
    case 574: // --cegqi-all
6515
15
        assign_quantifiers_cegqiAll(opts, option, true);
6516
15
      break;
6517
    case 575:// --no-cegqi-all
6518
        assign_quantifiers_cegqiAll(opts, option, false);
6519
      break;
6520
106
    case 576: // --cegqi-bv
6521
106
        assign_quantifiers_cegqiBv(opts, option, true);
6522
106
      break;
6523
    case 577:// --no-cegqi-bv
6524
        assign_quantifiers_cegqiBv(opts, option, false);
6525
      break;
6526
    case 578: // --cegqi-bv-concat-inv
6527
        assign_quantifiers_cegqiBvConcInv(opts, option, true);
6528
      break;
6529
    case 579:// --no-cegqi-bv-concat-inv
6530
        assign_quantifiers_cegqiBvConcInv(opts, option, false);
6531
      break;
6532
82
    case 580: // --cegqi-bv-ineq=MODE
6533
82
        assign_quantifiers_cegqiBvIneqMode(opts, option, optionarg);
6534
82
      break;
6535
    case 581: // --cegqi-bv-interleave-value
6536
        assign_quantifiers_cegqiBvInterleaveValue(opts, option, true);
6537
      break;
6538
    case 582:// --no-cegqi-bv-interleave-value
6539
        assign_quantifiers_cegqiBvInterleaveValue(opts, option, false);
6540
      break;
6541
    case 583: // --cegqi-bv-linear
6542
        assign_quantifiers_cegqiBvLinearize(opts, option, true);
6543
      break;
6544
    case 584:// --no-cegqi-bv-linear
6545
        assign_quantifiers_cegqiBvLinearize(opts, option, false);
6546
      break;
6547
2
    case 585: // --cegqi-bv-rm-extract
6548
2
        assign_quantifiers_cegqiBvRmExtract(opts, option, true);
6549
2
      break;
6550
    case 586:// --no-cegqi-bv-rm-extract
6551
        assign_quantifiers_cegqiBvRmExtract(opts, option, false);
6552
      break;
6553
    case 587: // --cegqi-bv-solve-nl
6554
        assign_quantifiers_cegqiBvSolveNl(opts, option, true);
6555
      break;
6556
    case 588:// --no-cegqi-bv-solve-nl
6557
        assign_quantifiers_cegqiBvSolveNl(opts, option, false);
6558
      break;
6559
5
    case 589: // --cegqi-full
6560
5
        assign_quantifiers_cegqiFullEffort(opts, option, true);
6561
5
      break;
6562
82
    case 590:// --no-cegqi-full
6563
82
        assign_quantifiers_cegqiFullEffort(opts, option, false);
6564
82
      break;
6565
    case 591: // --cegqi-innermost
6566
        assign_quantifiers_cegqiInnermost(opts, option, true);
6567
      break;
6568
    case 592:// --no-cegqi-innermost
6569
        assign_quantifiers_cegqiInnermost(opts, option, false);
6570
      break;
6571
    case 593: // --cegqi-midpoint
6572
        assign_quantifiers_cegqiMidpoint(opts, option, true);
6573
      break;
6574
    case 594:// --no-cegqi-midpoint
6575
        assign_quantifiers_cegqiMidpoint(opts, option, false);
6576
      break;
6577
    case 595: // --cegqi-min-bounds
6578
        assign_quantifiers_cegqiMinBounds(opts, option, true);
6579
      break;
6580
    case 596:// --no-cegqi-min-bounds
6581
        assign_quantifiers_cegqiMinBounds(opts, option, false);
6582
      break;
6583
    case 597: // --cegqi-model
6584
        assign_quantifiers_cegqiModel(opts, option, true);
6585
      break;
6586
    case 598:// --no-cegqi-model
6587
        assign_quantifiers_cegqiModel(opts, option, false);
6588
      break;
6589
3
    case 599: // --cegqi-multi-inst
6590
3
        assign_quantifiers_cegqiMultiInst(opts, option, true);
6591
3
      break;
6592
    case 600:// --no-cegqi-multi-inst
6593
        assign_quantifiers_cegqiMultiInst(opts, option, false);
6594
      break;
6595
7
    case 601: // --cegqi-nested-qe
6596
7
        assign_quantifiers_cegqiNestedQE(opts, option, true);
6597
7
      break;
6598
    case 602:// --no-cegqi-nested-qe
6599
        assign_quantifiers_cegqiNestedQE(opts, option, false);
6600
      break;
6601
    case 603: // --cegqi-nopt
6602
        assign_quantifiers_cegqiNopt(opts, option, true);
6603
      break;
6604
    case 604:// --no-cegqi-nopt
6605
        assign_quantifiers_cegqiNopt(opts, option, false);
6606
      break;
6607
    case 605: // --cegqi-repeat-lit
6608
        assign_quantifiers_cegqiRepeatLit(opts, option, true);
6609
      break;
6610
    case 606:// --no-cegqi-repeat-lit
6611
        assign_quantifiers_cegqiRepeatLit(opts, option, false);
6612
      break;
6613
    case 607: // --cegqi-round-up-lia
6614
        assign_quantifiers_cegqiRoundUpLowerLia(opts, option, true);
6615
      break;
6616
    case 608:// --no-cegqi-round-up-lia
6617
        assign_quantifiers_cegqiRoundUpLowerLia(opts, option, false);
6618
      break;
6619
    case 609: // --cegqi-sat
6620
        assign_quantifiers_cegqiSat(opts, option, true);
6621
      break;
6622
    case 610:// --no-cegqi-sat
6623
        assign_quantifiers_cegqiSat(opts, option, false);
6624
      break;
6625
3
    case 611: // --cegqi-use-inf-int
6626
3
        assign_quantifiers_cegqiUseInfInt(opts, option, true);
6627
3
      break;
6628
    case 612:// --no-cegqi-use-inf-int
6629
        assign_quantifiers_cegqiUseInfInt(opts, option, false);
6630
      break;
6631
3
    case 613: // --cegqi-use-inf-real
6632
3
        assign_quantifiers_cegqiUseInfReal(opts, option, true);
6633
3
      break;
6634
    case 614:// --no-cegqi-use-inf-real
6635
        assign_quantifiers_cegqiUseInfReal(opts, option, false);
6636
      break;
6637
    case 615: // --cond-var-split-agg-quant
6638
        assign_quantifiers_condVarSplitQuantAgg(opts, option, true);
6639
      break;
6640
    case 616:// --no-cond-var-split-agg-quant
6641
        assign_quantifiers_condVarSplitQuantAgg(opts, option, false);
6642
      break;
6643
    case 617: // --cond-var-split-quant
6644
        assign_quantifiers_condVarSplitQuant(opts, option, true);
6645
      break;
6646
    case 618:// --no-cond-var-split-quant
6647
        assign_quantifiers_condVarSplitQuant(opts, option, false);
6648
      break;
6649
    case 619: // --conjecture-filter-active-terms
6650
        assign_quantifiers_conjectureFilterActiveTerms(opts, option, true);
6651
      break;
6652
    case 620:// --no-conjecture-filter-active-terms
6653
        assign_quantifiers_conjectureFilterActiveTerms(opts, option, false);
6654
      break;
6655
    case 621: // --conjecture-filter-canonical
6656
        assign_quantifiers_conjectureFilterCanonical(opts, option, true);
6657
      break;
6658
    case 622:// --no-conjecture-filter-canonical
6659
        assign_quantifiers_conjectureFilterCanonical(opts, option, false);
6660
      break;
6661
    case 623: // --conjecture-filter-model
6662
        assign_quantifiers_conjectureFilterModel(opts, option, true);
6663
      break;
6664
    case 624:// --no-conjecture-filter-model
6665
        assign_quantifiers_conjectureFilterModel(opts, option, false);
6666
      break;
6667
3
    case 625: // --conjecture-gen
6668
3
        assign_quantifiers_conjectureGen(opts, option, true);
6669
3
      break;
6670
    case 626:// --no-conjecture-gen
6671
        assign_quantifiers_conjectureGen(opts, option, false);
6672
      break;
6673
    case 627: // --conjecture-gen-gt-enum=N
6674
        assign_quantifiers_conjectureGenGtEnum(opts, option, optionarg);
6675
      break;
6676
    case 628: // --conjecture-gen-max-depth=N
6677
        assign_quantifiers_conjectureGenMaxDepth(opts, option, optionarg);
6678
      break;
6679
    case 629: // --conjecture-gen-per-round=N
6680
        assign_quantifiers_conjectureGenPerRound(opts, option, optionarg);
6681
      break;
6682
    case 630: // --conjecture-gen-uee-intro
6683
        assign_quantifiers_conjectureUeeIntro(opts, option, true);
6684
      break;
6685
    case 631:// --no-conjecture-gen-uee-intro
6686
        assign_quantifiers_conjectureUeeIntro(opts, option, false);
6687
      break;
6688
    case 632: // --conjecture-no-filter
6689
        assign_quantifiers_conjectureNoFilter(opts, option, true);
6690
      break;
6691
    case 633:// --no-conjecture-no-filter
6692
        assign_quantifiers_conjectureNoFilter(opts, option, false);
6693
      break;
6694
    case 634: // --dt-stc-ind
6695
        assign_quantifiers_dtStcInduction(opts, option, true);
6696
      break;
6697
    case 635:// --no-dt-stc-ind
6698
        assign_quantifiers_dtStcInduction(opts, option, false);
6699
      break;
6700
    case 636: // --dt-var-exp-quant
6701
        assign_quantifiers_dtVarExpandQuant(opts, option, true);
6702
      break;
6703
    case 637:// --no-dt-var-exp-quant
6704
        assign_quantifiers_dtVarExpandQuant(opts, option, false);
6705
      break;
6706
    case 638: // --e-matching
6707
        assign_quantifiers_eMatching(opts, option, true);
6708
      break;
6709
    case 639:// --no-e-matching
6710
        assign_quantifiers_eMatching(opts, option, false);
6711
      break;
6712
    case 640: // --elim-taut-quant
6713
        assign_quantifiers_elimTautQuant(opts, option, true);
6714
      break;
6715
    case 641:// --no-elim-taut-quant
6716
        assign_quantifiers_elimTautQuant(opts, option, false);
6717
      break;
6718
9
    case 642: // --ext-rewrite-quant
6719
9
        assign_quantifiers_extRewriteQuant(opts, option, true);
6720
9
      break;
6721
    case 643:// --no-ext-rewrite-quant
6722
        assign_quantifiers_extRewriteQuant(opts, option, false);
6723
      break;
6724
159
    case 644: // --finite-model-find
6725
159
        assign_quantifiers_finiteModelFind(opts, option, true);
6726
159
      break;
6727
1
    case 645:// --no-finite-model-find
6728
1
        assign_quantifiers_finiteModelFind(opts, option, false);
6729
1
      break;
6730
30
    case 646: // --fmf-bound
6731
30
        assign_quantifiers_fmfBound(opts, option, true);
6732
30
      break;
6733
    case 647:// --no-fmf-bound
6734
        assign_quantifiers_fmfBound(opts, option, false);
6735
      break;
6736
6
    case 648: // --fmf-bound-int
6737
6
        assign_quantifiers_fmfBoundInt(opts, option, true);
6738
6
      break;
6739
    case 649:// --no-fmf-bound-int
6740
        assign_quantifiers_fmfBoundInt(opts, option, false);
6741
      break;
6742
3
    case 650: // --fmf-bound-lazy
6743
3
        assign_quantifiers_fmfBoundLazy(opts, option, true);
6744
3
      break;
6745
    case 651:// --no-fmf-bound-lazy
6746
        assign_quantifiers_fmfBoundLazy(opts, option, false);
6747
      break;
6748
    case 652: // --fmf-fmc-simple
6749
        assign_quantifiers_fmfFmcSimple(opts, option, true);
6750
      break;
6751
    case 653:// --no-fmf-fmc-simple
6752
        assign_quantifiers_fmfFmcSimple(opts, option, false);
6753
      break;
6754
    case 654: // --fmf-fresh-dc
6755
        assign_quantifiers_fmfFreshDistConst(opts, option, true);
6756
      break;
6757
    case 655:// --no-fmf-fresh-dc
6758
        assign_quantifiers_fmfFreshDistConst(opts, option, false);
6759
      break;
6760
37
    case 656: // --fmf-fun
6761
37
        assign_quantifiers_fmfFunWellDefined(opts, option, true);
6762
37
      break;
6763
    case 657:// --no-fmf-fun
6764
        assign_quantifiers_fmfFunWellDefined(opts, option, false);
6765
      break;
6766
10
    case 658: // --fmf-fun-rlv
6767
10
        assign_quantifiers_fmfFunWellDefinedRelevant(opts, option, true);
6768
10
      break;
6769
    case 659:// --no-fmf-fun-rlv
6770
        assign_quantifiers_fmfFunWellDefinedRelevant(opts, option, false);
6771
      break;
6772
7
    case 660: // --fmf-inst-engine
6773
7
        assign_quantifiers_fmfInstEngine(opts, option, true);
6774
7
      break;
6775
    case 661:// --no-fmf-inst-engine
6776
        assign_quantifiers_fmfInstEngine(opts, option, false);
6777
      break;
6778
    case 662: // --fmf-type-completion-thresh=N
6779
        assign_quantifiers_fmfTypeCompletionThresh(opts, option, optionarg);
6780
      break;
6781
    case 663: // --fs-interleave
6782
        assign_quantifiers_fullSaturateInterleave(opts, option, true);
6783
      break;
6784
    case 664:// --no-fs-interleave
6785
        assign_quantifiers_fullSaturateInterleave(opts, option, false);
6786
      break;
6787
3
    case 665: // --fs-stratify
6788
3
        assign_quantifiers_fullSaturateStratify(opts, option, true);
6789
3
      break;
6790
    case 666:// --no-fs-stratify
6791
        assign_quantifiers_fullSaturateStratify(opts, option, false);
6792
      break;
6793
    case 667: // --fs-sum
6794
        assign_quantifiers_fullSaturateSum(opts, option, true);
6795
      break;
6796
    case 668:// --no-fs-sum
6797
        assign_quantifiers_fullSaturateSum(opts, option, false);
6798
      break;
6799
76
    case 669: // --full-saturate-quant
6800
76
        assign_quantifiers_fullSaturateQuant(opts, option, true);
6801
76
      break;
6802
    case 670:// --no-full-saturate-quant
6803
        assign_quantifiers_fullSaturateQuant(opts, option, false);
6804
      break;
6805
3
    case 671: // --full-saturate-quant-limit=N
6806
3
        assign_quantifiers_fullSaturateLimit(opts, option, optionarg);
6807
3
      break;
6808
    case 672: // --full-saturate-quant-rd
6809
        assign_quantifiers_fullSaturateQuantRd(opts, option, true);
6810
      break;
6811
    case 673:// --no-full-saturate-quant-rd
6812
        assign_quantifiers_fullSaturateQuantRd(opts, option, false);
6813
      break;
6814
6
    case 674: // --global-negate
6815
6
        assign_quantifiers_globalNegate(opts, option, true);
6816
6
      break;
6817
    case 675:// --no-global-negate
6818
        assign_quantifiers_globalNegate(opts, option, false);
6819
      break;
6820
8
    case 676: // --ho-elim
6821
8
        assign_quantifiers_hoElim(opts, option, true);
6822
8
      break;
6823
    case 677:// --no-ho-elim
6824
        assign_quantifiers_hoElim(opts, option, false);
6825
      break;
6826
1
    case 678: // --ho-elim-store-ax
6827
1
        assign_quantifiers_hoElimStoreAx(opts, option, true);
6828
1
      break;
6829
    case 679:// --no-ho-elim-store-ax
6830
        assign_quantifiers_hoElimStoreAx(opts, option, false);
6831
      break;
6832
    case 680: // --ho-matching
6833
        assign_quantifiers_hoMatching(opts, option, true);
6834
      break;
6835
    case 681:// --no-ho-matching
6836
        assign_quantifiers_hoMatching(opts, option, false);
6837
      break;
6838
    case 682: // --ho-matching-var-priority
6839
        assign_quantifiers_hoMatchingVarArgPriority(opts, option, true);
6840
      break;
6841
    case 683:// --no-ho-matching-var-priority
6842
        assign_quantifiers_hoMatchingVarArgPriority(opts, option, false);
6843
      break;
6844
    case 684: // --ho-merge-term-db
6845
        assign_quantifiers_hoMergeTermDb(opts, option, true);
6846
      break;
6847
    case 685:// --no-ho-merge-term-db
6848
        assign_quantifiers_hoMergeTermDb(opts, option, false);
6849
      break;
6850
    case 686: // --increment-triggers
6851
        assign_quantifiers_incrementTriggers(opts, option, true);
6852
      break;
6853
    case 687:// --no-increment-triggers
6854
        assign_quantifiers_incrementTriggers(opts, option, false);
6855
      break;
6856
    case 688: // --inst-level-input-only
6857
        assign_quantifiers_instLevelInputOnly(opts, option, true);
6858
      break;
6859
    case 689:// --no-inst-level-input-only
6860
        assign_quantifiers_instLevelInputOnly(opts, option, false);
6861
      break;
6862
3
    case 690: // --inst-max-level=N
6863
3
        assign_quantifiers_instMaxLevel(opts, option, optionarg);
6864
3
      break;
6865
    case 691: // --inst-max-rounds=N
6866
        assign_quantifiers_instMaxRounds(opts, option, optionarg);
6867
      break;
6868
    case 692: // --inst-no-entail
6869
        assign_quantifiers_instNoEntail(opts, option, true);
6870
      break;
6871
    case 693:// --no-inst-no-entail
6872
        assign_quantifiers_instNoEntail(opts, option, false);
6873
      break;
6874
    case 694: // --inst-when-phase=N
6875
        assign_quantifiers_instWhenPhase(opts, option, optionarg);
6876
      break;
6877
    case 695: // --inst-when-strict-interleave
6878
        assign_quantifiers_instWhenStrictInterleave(opts, option, true);
6879
      break;
6880
    case 696:// --no-inst-when-strict-interleave
6881
        assign_quantifiers_instWhenStrictInterleave(opts, option, false);
6882
      break;
6883
    case 697: // --inst-when-tc-first
6884
        assign_quantifiers_instWhenTcFirst(opts, option, true);
6885
      break;
6886
    case 698:// --no-inst-when-tc-first
6887
        assign_quantifiers_instWhenTcFirst(opts, option, false);
6888
      break;
6889
3
    case 699: // --inst-when=MODE
6890
3
        assign_quantifiers_instWhenMode(opts, option, optionarg);
6891
3
      break;
6892
3
    case 700: // --int-wf-ind
6893
3
        assign_quantifiers_intWfInduction(opts, option, true);
6894
3
      break;
6895
    case 701:// --no-int-wf-ind
6896
        assign_quantifiers_intWfInduction(opts, option, false);
6897
      break;
6898
    case 702: // --ite-dtt-split-quant
6899
        assign_quantifiers_iteDtTesterSplitQuant(opts, option, true);
6900
      break;
6901
    case 703:// --no-ite-dtt-split-quant
6902
        assign_quantifiers_iteDtTesterSplitQuant(opts, option, false);
6903
      break;
6904
    case 704: // --ite-lift-quant=MODE
6905
        assign_quantifiers_iteLiftQuant(opts, option, optionarg);
6906
      break;
6907
    case 705: // --literal-matching=MODE
6908
        assign_quantifiers_literalMatchMode(opts, option, optionarg);
6909
      break;
6910
17
    case 706: // --macros-quant
6911
17
        assign_quantifiers_macrosQuant(opts, option, true);
6912
17
      break;
6913
    case 707:// --no-macros-quant
6914
        assign_quantifiers_macrosQuant(opts, option, false);
6915
      break;
6916
2
    case 708: // --macros-quant-mode=MODE
6917
2
        assign_quantifiers_macrosQuantMode(opts, option, optionarg);
6918
2
      break;
6919
    case 709: // --mbqi-interleave
6920
        assign_quantifiers_mbqiInterleave(opts, option, true);
6921
      break;
6922
    case 710:// --no-mbqi-interleave
6923
        assign_quantifiers_mbqiInterleave(opts, option, false);
6924
      break;
6925
    case 711: // --mbqi-one-inst-per-round
6926
        assign_quantifiers_fmfOneInstPerRound(opts, option, true);
6927
      break;
6928
    case 712:// --no-mbqi-one-inst-per-round
6929
        assign_quantifiers_fmfOneInstPerRound(opts, option, false);
6930
      break;
6931
    case 713: // --mbqi=MODE
6932
        assign_quantifiers_mbqiMode(opts, option, optionarg);
6933
      break;
6934
    case 714: // --miniscope-quant
6935
        assign_quantifiers_miniscopeQuant(opts, option, true);
6936
      break;
6937
    case 715:// --no-miniscope-quant
6938
        assign_quantifiers_miniscopeQuant(opts, option, false);
6939
      break;
6940
    case 716: // --miniscope-quant-fv
6941
        assign_quantifiers_miniscopeQuantFreeVar(opts, option, true);
6942
      break;
6943
    case 717:// --no-miniscope-quant-fv
6944
        assign_quantifiers_miniscopeQuantFreeVar(opts, option, false);
6945
      break;
6946
3
    case 718: // --multi-trigger-cache
6947
3
        assign_quantifiers_multiTriggerCache(opts, option, true);
6948
3
      break;
6949
    case 719:// --no-multi-trigger-cache
6950
        assign_quantifiers_multiTriggerCache(opts, option, false);
6951
      break;
6952
    case 720: // --multi-trigger-linear
6953
        assign_quantifiers_multiTriggerLinear(opts, option, true);
6954
      break;
6955
    case 721:// --no-multi-trigger-linear
6956
        assign_quantifiers_multiTriggerLinear(opts, option, false);
6957
      break;
6958
    case 722: // --multi-trigger-priority
6959
        assign_quantifiers_multiTriggerPriority(opts, option, true);
6960
      break;
6961
    case 723:// --no-multi-trigger-priority
6962
        assign_quantifiers_multiTriggerPriority(opts, option, false);
6963
      break;
6964
    case 724: // --multi-trigger-when-single
6965
        assign_quantifiers_multiTriggerWhenSingle(opts, option, true);
6966
      break;
6967
    case 725:// --no-multi-trigger-when-single
6968
        assign_quantifiers_multiTriggerWhenSingle(opts, option, false);
6969
      break;
6970
3
    case 726: // --partial-triggers
6971
3
        assign_quantifiers_partialTriggers(opts, option, true);
6972
3
      break;
6973
    case 727:// --no-partial-triggers
6974
        assign_quantifiers_partialTriggers(opts, option, false);
6975
      break;
6976
3
    case 728: // --pool-inst
6977
3
        assign_quantifiers_poolInst(opts, option, true);
6978
3
      break;
6979
    case 729:// --no-pool-inst
6980
        assign_quantifiers_poolInst(opts, option, false);
6981
      break;
6982
    case 730: // --pre-skolem-quant
6983
        assign_quantifiers_preSkolemQuant(opts, option, true);
6984
      break;
6985
    case 731:// --no-pre-skolem-quant
6986
        assign_quantifiers_preSkolemQuant(opts, option, false);
6987
      break;
6988
    case 732: // --pre-skolem-quant-agg
6989
        assign_quantifiers_preSkolemQuantAgg(opts, option, true);
6990
      break;
6991
    case 733:// --no-pre-skolem-quant-agg
6992
        assign_quantifiers_preSkolemQuantAgg(opts, option, false);
6993
      break;
6994
    case 734: // --pre-skolem-quant-nested
6995
        assign_quantifiers_preSkolemQuantNested(opts, option, true);
6996
      break;
6997
    case 735:// --no-pre-skolem-quant-nested
6998
        assign_quantifiers_preSkolemQuantNested(opts, option, false);
6999
      break;
7000
    case 736: // --prenex-quant-user
7001
        assign_quantifiers_prenexQuantUser(opts, option, true);
7002
      break;
7003
    case 737:// --no-prenex-quant-user
7004
        assign_quantifiers_prenexQuantUser(opts, option, false);
7005
      break;
7006
    case 738: // --prenex-quant=MODE
7007
        assign_quantifiers_prenexQuant(opts, option, optionarg);
7008
      break;
7009
3
    case 739: // --purify-triggers
7010
3
        assign_quantifiers_purifyTriggers(opts, option, true);
7011
3
      break;
7012
    case 740:// --no-purify-triggers
7013
        assign_quantifiers_purifyTriggers(opts, option, false);
7014
      break;
7015
    case 741: // --qcf-all-conflict
7016
        assign_quantifiers_qcfAllConflict(opts, option, true);
7017
      break;
7018
    case 742:// --no-qcf-all-conflict
7019
        assign_quantifiers_qcfAllConflict(opts, option, false);
7020
      break;
7021
    case 743: // --qcf-eager-check-rd
7022
        assign_quantifiers_qcfEagerCheckRd(opts, option, true);
7023
      break;
7024
    case 744:// --no-qcf-eager-check-rd
7025
        assign_quantifiers_qcfEagerCheckRd(opts, option, false);
7026
      break;
7027
    case 745: // --qcf-eager-test
7028
        assign_quantifiers_qcfEagerTest(opts, option, true);
7029
      break;
7030
    case 746:// --no-qcf-eager-test
7031
        assign_quantifiers_qcfEagerTest(opts, option, false);
7032
      break;
7033
    case 747: // --qcf-nested-conflict
7034
        assign_quantifiers_qcfNestedConflict(opts, option, true);
7035
      break;
7036
    case 748:// --no-qcf-nested-conflict
7037
        assign_quantifiers_qcfNestedConflict(opts, option, false);
7038
      break;
7039
    case 749: // --qcf-skip-rd
7040
        assign_quantifiers_qcfSkipRd(opts, option, true);
7041
      break;
7042
    case 750:// --no-qcf-skip-rd
7043
        assign_quantifiers_qcfSkipRd(opts, option, false);
7044
      break;
7045
6
    case 751: // --qcf-tconstraint
7046
6
        assign_quantifiers_qcfTConstraint(opts, option, true);
7047
6
      break;
7048
    case 752:// --no-qcf-tconstraint
7049
        assign_quantifiers_qcfTConstraint(opts, option, false);
7050
      break;
7051
    case 753: // --qcf-vo-exp
7052
        assign_quantifiers_qcfVoExp(opts, option, true);
7053
      break;
7054
    case 754:// --no-qcf-vo-exp
7055
        assign_quantifiers_qcfVoExp(opts, option, false);
7056
      break;
7057
    case 755: // --quant-alpha-equiv
7058
        assign_quantifiers_quantAlphaEquiv(opts, option, true);
7059
      break;
7060
    case 756:// --no-quant-alpha-equiv
7061
        assign_quantifiers_quantAlphaEquiv(opts, option, false);
7062
      break;
7063
    case 757: // --quant-cf
7064
        assign_quantifiers_quantConflictFind(opts, option, true);
7065
      break;
7066
    case 758:// --no-quant-cf
7067
        assign_quantifiers_quantConflictFind(opts, option, false);
7068
      break;
7069
    case 759: // --quant-cf-mode=MODE
7070
        assign_quantifiers_qcfMode(opts, option, optionarg);
7071
      break;
7072
    case 760: // --quant-cf-when=MODE
7073
        assign_quantifiers_qcfWhenMode(opts, option, optionarg);
7074
      break;
7075
    case 761: // --quant-dsplit-mode=MODE
7076
        assign_quantifiers_quantDynamicSplit(opts, option, optionarg);
7077
      break;
7078
    case 762: // --quant-fun-wd
7079
        assign_quantifiers_quantFunWellDefined(opts, option, true);
7080
      break;
7081
    case 763:// --no-quant-fun-wd
7082
        assign_quantifiers_quantFunWellDefined(opts, option, false);
7083
      break;
7084
6
    case 764: // --quant-ind
7085
6
        assign_quantifiers_quantInduction(opts, option, true);
7086
6
      break;
7087
    case 765:// --no-quant-ind
7088
        assign_quantifiers_quantInduction(opts, option, false);
7089
      break;
7090
    case 766: // --quant-rep-mode=MODE
7091
        assign_quantifiers_quantRepMode(opts, option, optionarg);
7092
      break;
7093
    case 767: // --quant-split
7094
        assign_quantifiers_quantSplit(opts, option, true);
7095
      break;
7096
    case 768:// --no-quant-split
7097
        assign_quantifiers_quantSplit(opts, option, false);
7098
      break;
7099
    case 769: // --register-quant-body-terms
7100
        assign_quantifiers_registerQuantBodyTerms(opts, option, true);
7101
      break;
7102
    case 770:// --no-register-quant-body-terms
7103
        assign_quantifiers_registerQuantBodyTerms(opts, option, false);
7104
      break;
7105
12
    case 771: // --relational-triggers
7106
12
        assign_quantifiers_relationalTriggers(opts, option, true);
7107
12
      break;
7108
3
    case 772:// --no-relational-triggers
7109
3
        assign_quantifiers_relationalTriggers(opts, option, false);
7110
3
      break;
7111
3
    case 773: // --relevant-triggers
7112
3
        assign_quantifiers_relevantTriggers(opts, option, true);
7113
3
      break;
7114
    case 774:// --no-relevant-triggers
7115
        assign_quantifiers_relevantTriggers(opts, option, false);
7116
      break;
7117
    case 775: // --strict-triggers
7118
        assign_quantifiers_strictTriggers(opts, option, true);
7119
      break;
7120
    case 776:// --no-strict-triggers
7121
        assign_quantifiers_strictTriggers(opts, option, false);
7122
      break;
7123
    case 777: // --sygus
7124
        assign_quantifiers_sygus(opts, option, true);
7125
      break;
7126
    case 778:// --no-sygus
7127
        assign_quantifiers_sygus(opts, option, false);
7128
      break;
7129
    case 779: // --sygus-active-gen-cfactor=N
7130
        assign_quantifiers_sygusActiveGenEnumConsts(opts, option, optionarg);
7131
      break;
7132
13
    case 780: // --sygus-active-gen=MODE
7133
13
        assign_quantifiers_sygusActiveGenMode(opts, option, optionarg);
7134
13
      break;
7135
1
    case 781: // --sygus-add-const-grammar
7136
1
        assign_quantifiers_sygusAddConstGrammar(opts, option, true);
7137
1
      break;
7138
1
    case 782:// --no-sygus-add-const-grammar
7139
1
        assign_quantifiers_sygusAddConstGrammar(opts, option, false);
7140
1
      break;
7141
3
    case 783: // --sygus-arg-relevant
7142
3
        assign_quantifiers_sygusArgRelevant(opts, option, true);
7143
3
      break;
7144
    case 784:// --no-sygus-arg-relevant
7145
        assign_quantifiers_sygusArgRelevant(opts, option, false);
7146
      break;
7147
    case 785: // --sygus-auto-unfold
7148
        assign_quantifiers_sygusInvAutoUnfold(opts, option, true);
7149
      break;
7150
    case 786:// --no-sygus-auto-unfold
7151
        assign_quantifiers_sygusInvAutoUnfold(opts, option, false);
7152
      break;
7153
1
    case 787: // --sygus-bool-ite-return-const
7154
1
        assign_quantifiers_sygusBoolIteReturnConst(opts, option, true);
7155
1
      break;
7156
    case 788:// --no-sygus-bool-ite-return-const
7157
        assign_quantifiers_sygusBoolIteReturnConst(opts, option, false);
7158
      break;
7159
5
    case 789: // --sygus-core-connective
7160
5
        assign_quantifiers_sygusCoreConnective(opts, option, true);
7161
5
      break;
7162
    case 790:// --no-sygus-core-connective
7163
        assign_quantifiers_sygusCoreConnective(opts, option, false);
7164
      break;
7165
    case 791: // --sygus-crepair-abort
7166
        assign_quantifiers_sygusConstRepairAbort(opts, option, true);
7167
      break;
7168
    case 792:// --no-sygus-crepair-abort
7169
        assign_quantifiers_sygusConstRepairAbort(opts, option, false);
7170
      break;
7171
    case 793: // --sygus-eval-opt
7172
        assign_quantifiers_sygusEvalOpt(opts, option, true);
7173
      break;
7174
    case 794:// --no-sygus-eval-opt
7175
        assign_quantifiers_sygusEvalOpt(opts, option, false);
7176
      break;
7177
    case 795: // --sygus-eval-unfold
7178
        assign_quantifiers_sygusEvalUnfold(opts, option, true);
7179
      break;
7180
    case 796:// --no-sygus-eval-unfold
7181
        assign_quantifiers_sygusEvalUnfold(opts, option, false);
7182
      break;
7183
    case 797: // --sygus-eval-unfold-bool
7184
        assign_quantifiers_sygusEvalUnfoldBool(opts, option, true);
7185
      break;
7186
    case 798:// --no-sygus-eval-unfold-bool
7187
        assign_quantifiers_sygusEvalUnfoldBool(opts, option, false);
7188
      break;
7189
    case 799: // --sygus-expr-miner-check-timeout=N
7190
        assign_quantifiers_sygusExprMinerCheckTimeout(opts, option, optionarg);
7191
      break;
7192
    case 800: // --sygus-ext-rew
7193
        assign_quantifiers_sygusExtRew(opts, option, true);
7194
      break;
7195
    case 801:// --no-sygus-ext-rew
7196
        assign_quantifiers_sygusExtRew(opts, option, false);
7197
      break;
7198
    case 802: // --sygus-filter-sol-rev
7199
        assign_quantifiers_sygusFilterSolRevSubsume(opts, option, true);
7200
      break;
7201
    case 803:// --no-sygus-filter-sol-rev
7202
        assign_quantifiers_sygusFilterSolRevSubsume(opts, option, false);
7203
      break;
7204
    case 804: // --sygus-filter-sol=MODE
7205
        assign_quantifiers_sygusFilterSolMode(opts, option, optionarg);
7206
      break;
7207
6
    case 805: // --sygus-grammar-cons=MODE
7208
6
        assign_quantifiers_sygusGrammarConsMode(opts, option, optionarg);
7209
6
      break;
7210
    case 806: // --sygus-grammar-norm
7211
        assign_quantifiers_sygusGrammarNorm(opts, option, true);
7212
      break;
7213
    case 807:// --no-sygus-grammar-norm
7214
        assign_quantifiers_sygusGrammarNorm(opts, option, false);
7215
      break;
7216
46
    case 808: // --sygus-inference
7217
46
        assign_quantifiers_sygusInference(opts, option, true);
7218
46
      break;
7219
    case 809:// --no-sygus-inference
7220
        assign_quantifiers_sygusInference(opts, option, false);
7221
      break;
7222
14
    case 810: // --sygus-inst
7223
14
        assign_quantifiers_sygusInst(opts, option, true);
7224
14
      break;
7225
    case 811:// --no-sygus-inst
7226
        assign_quantifiers_sygusInst(opts, option, false);
7227
      break;
7228
    case 812: // --sygus-inst-mode=MODE
7229
        assign_quantifiers_sygusInstMode(opts, option, optionarg);
7230
      break;
7231
    case 813: // --sygus-inst-scope=MODE
7232
        assign_quantifiers_sygusInstScope(opts, option, optionarg);
7233
      break;
7234
    case 814: // --sygus-inst-term-sel=MODE
7235
        assign_quantifiers_sygusInstTermSel(opts, option, optionarg);
7236
      break;
7237
    case 815: // --sygus-inv-templ-when-sg
7238
        assign_quantifiers_sygusInvTemplWhenSyntax(opts, option, true);
7239
      break;
7240
    case 816:// --no-sygus-inv-templ-when-sg
7241
        assign_quantifiers_sygusInvTemplWhenSyntax(opts, option, false);
7242
      break;
7243
3
    case 817: // --sygus-inv-templ=MODE
7244
3
        assign_quantifiers_sygusInvTemplMode(opts, option, optionarg);
7245
3
      break;
7246
    case 818: // --sygus-min-grammar
7247
        assign_quantifiers_sygusMinGrammar(opts, option, true);
7248
      break;
7249
    case 819:// --no-sygus-min-grammar
7250
        assign_quantifiers_sygusMinGrammar(opts, option, false);
7251
      break;
7252
    case 820: // --sygus-pbe
7253
        assign_quantifiers_sygusUnifPbe(opts, option, true);
7254
      break;
7255
6
    case 821:// --no-sygus-pbe
7256
6
        assign_quantifiers_sygusUnifPbe(opts, option, false);
7257
6
      break;
7258
    case 822: // --sygus-pbe-multi-fair
7259
        assign_quantifiers_sygusPbeMultiFair(opts, option, true);
7260
      break;
7261
    case 823:// --no-sygus-pbe-multi-fair
7262
        assign_quantifiers_sygusPbeMultiFair(opts, option, false);
7263
      break;
7264
    case 824: // --sygus-pbe-multi-fair-diff=N
7265
        assign_quantifiers_sygusPbeMultiFairDiff(opts, option, optionarg);
7266
      break;
7267
4
    case 825: // --sygus-qe-preproc
7268
4
        assign_quantifiers_sygusQePreproc(opts, option, true);
7269
4
      break;
7270
    case 826:// --no-sygus-qe-preproc
7271
        assign_quantifiers_sygusQePreproc(opts, option, false);
7272
      break;
7273
    case 827: // --sygus-query-gen
7274
        assign_quantifiers_sygusQueryGen(opts, option, true);
7275
      break;
7276
    case 828:// --no-sygus-query-gen
7277
        assign_quantifiers_sygusQueryGen(opts, option, false);
7278
      break;
7279
    case 829: // --sygus-query-gen-check
7280
        assign_quantifiers_sygusQueryGenCheck(opts, option, true);
7281
      break;
7282
    case 830:// --no-sygus-query-gen-check
7283
        assign_quantifiers_sygusQueryGenCheck(opts, option, false);
7284
      break;
7285
    case 831: // --sygus-query-gen-dump-files=MODE
7286
        assign_quantifiers_sygusQueryGenDumpFiles(opts, option, optionarg);
7287
      break;
7288
    case 832: // --sygus-query-gen-thresh=N
7289
        assign_quantifiers_sygusQueryGenThresh(opts, option, optionarg);
7290
      break;
7291
1
    case 833: // --sygus-rec-fun
7292
1
        assign_quantifiers_sygusRecFun(opts, option, true);
7293
1
      break;
7294
    case 834:// --no-sygus-rec-fun
7295
        assign_quantifiers_sygusRecFun(opts, option, false);
7296
      break;
7297
    case 835: // --sygus-rec-fun-eval-limit=N
7298
        assign_quantifiers_sygusRecFunEvalLimit(opts, option, optionarg);
7299
      break;
7300
5
    case 836: // --sygus-repair-const
7301
5
        assign_quantifiers_sygusRepairConst(opts, option, true);
7302
5
      break;
7303
3
    case 837:// --no-sygus-repair-const
7304
3
        assign_quantifiers_sygusRepairConst(opts, option, false);
7305
3
      break;
7306
    case 838: // --sygus-repair-const-timeout=N
7307
        assign_quantifiers_sygusRepairConstTimeout(opts, option, optionarg);
7308
      break;
7309
6
    case 839: // --sygus-rr
7310
6
        assign_quantifiers_sygusRew(opts, option, true);
7311
6
      break;
7312
    case 840:// --no-sygus-rr
7313
        assign_quantifiers_sygusRew(opts, option, false);
7314
      break;
7315
1
    case 841: // --sygus-rr-synth
7316
1
        assign_quantifiers_sygusRewSynth(opts, option, true);
7317
1
      break;
7318
    case 842:// --no-sygus-rr-synth
7319
        assign_quantifiers_sygusRewSynth(opts, option, false);
7320
      break;
7321
    case 843: // --sygus-rr-synth-accel
7322
        assign_quantifiers_sygusRewSynthAccel(opts, option, true);
7323
      break;
7324
    case 844:// --no-sygus-rr-synth-accel
7325
        assign_quantifiers_sygusRewSynthAccel(opts, option, false);
7326
      break;
7327
3
    case 845: // --sygus-rr-synth-check
7328
3
        assign_quantifiers_sygusRewSynthCheck(opts, option, true);
7329
3
      break;
7330
    case 846:// --no-sygus-rr-synth-check
7331
        assign_quantifiers_sygusRewSynthCheck(opts, option, false);
7332
      break;
7333
    case 847: // --sygus-rr-synth-filter-cong
7334
        assign_quantifiers_sygusRewSynthFilterCong(opts, option, true);
7335
      break;
7336
    case 848:// --no-sygus-rr-synth-filter-cong
7337
        assign_quantifiers_sygusRewSynthFilterCong(opts, option, false);
7338
      break;
7339
    case 849: // --sygus-rr-synth-filter-match
7340
        assign_quantifiers_sygusRewSynthFilterMatch(opts, option, true);
7341
      break;
7342
    case 850:// --no-sygus-rr-synth-filter-match
7343
        assign_quantifiers_sygusRewSynthFilterMatch(opts, option, false);
7344
      break;
7345
    case 851: // --sygus-rr-synth-filter-nl
7346
        assign_quantifiers_sygusRewSynthFilterNonLinear(opts, option, true);
7347
      break;
7348
    case 852:// --no-sygus-rr-synth-filter-nl
7349
        assign_quantifiers_sygusRewSynthFilterNonLinear(opts, option, false);
7350
      break;
7351
    case 853: // --sygus-rr-synth-filter-order
7352
        assign_quantifiers_sygusRewSynthFilterOrder(opts, option, true);
7353
      break;
7354
    case 854:// --no-sygus-rr-synth-filter-order
7355
        assign_quantifiers_sygusRewSynthFilterOrder(opts, option, false);
7356
      break;
7357
    case 855: // --sygus-rr-synth-input
7358
        assign_quantifiers_sygusRewSynthInput(opts, option, true);
7359
      break;
7360
    case 856:// --no-sygus-rr-synth-input
7361
        assign_quantifiers_sygusRewSynthInput(opts, option, false);
7362
      break;
7363
    case 857: // --sygus-rr-synth-input-nvars=N
7364
        assign_quantifiers_sygusRewSynthInputNVars(opts, option, optionarg);
7365
      break;
7366
    case 858: // --sygus-rr-synth-input-use-bool
7367
        assign_quantifiers_sygusRewSynthInputUseBool(opts, option, true);
7368
      break;
7369
    case 859:// --no-sygus-rr-synth-input-use-bool
7370
        assign_quantifiers_sygusRewSynthInputUseBool(opts, option, false);
7371
      break;
7372
    case 860: // --sygus-rr-synth-rec
7373
        assign_quantifiers_sygusRewSynthRec(opts, option, true);
7374
      break;
7375
    case 861:// --no-sygus-rr-synth-rec
7376
        assign_quantifiers_sygusRewSynthRec(opts, option, false);
7377
      break;
7378
    case 862: // --sygus-rr-verify
7379
        assign_quantifiers_sygusRewVerify(opts, option, true);
7380
      break;
7381
    case 863:// --no-sygus-rr-verify
7382
        assign_quantifiers_sygusRewVerify(opts, option, false);
7383
      break;
7384
7
    case 864: // --sygus-rr-verify-abort
7385
7
        assign_quantifiers_sygusRewVerifyAbort(opts, option, true);
7386
7
      break;
7387
    case 865:// --no-sygus-rr-verify-abort
7388
        assign_quantifiers_sygusRewVerifyAbort(opts, option, false);
7389
      break;
7390
    case 866: // --sygus-sample-fp-uniform
7391
        assign_quantifiers_sygusSampleFpUniform(opts, option, true);
7392
      break;
7393
    case 867:// --no-sygus-sample-fp-uniform
7394
        assign_quantifiers_sygusSampleFpUniform(opts, option, false);
7395
      break;
7396
    case 868: // --sygus-sample-grammar
7397
        assign_quantifiers_sygusSampleGrammar(opts, option, true);
7398
      break;
7399
    case 869:// --no-sygus-sample-grammar
7400
        assign_quantifiers_sygusSampleGrammar(opts, option, false);
7401
      break;
7402
7
    case 870: // --sygus-samples=N
7403
7
        assign_quantifiers_sygusSamples(opts, option, optionarg);
7404
7
      break;
7405
    case 871: // --sygus-si-abort
7406
        assign_quantifiers_cegqiSingleInvAbort(opts, option, true);
7407
      break;
7408
    case 872:// --no-sygus-si-abort
7409
        assign_quantifiers_cegqiSingleInvAbort(opts, option, false);
7410
      break;
7411
    case 873: // --sygus-si-partial
7412
        assign_quantifiers_cegqiSingleInvPartial(opts, option, true);
7413
      break;
7414
    case 874:// --no-sygus-si-partial
7415
        assign_quantifiers_cegqiSingleInvPartial(opts, option, false);
7416
      break;
7417
1
    case 875: // --sygus-si-rcons-limit=N
7418
1
        assign_quantifiers_cegqiSingleInvReconstructLimit(opts, option, optionarg);
7419
1
      break;
7420
    case 876: // --sygus-si-rcons=MODE
7421
        assign_quantifiers_cegqiSingleInvReconstruct(opts, option, optionarg);
7422
      break;
7423
    case 877: // --sygus-si-reconstruct-const
7424
        assign_quantifiers_cegqiSingleInvReconstructConst(opts, option, true);
7425
      break;
7426
    case 878:// --no-sygus-si-reconstruct-const
7427
        assign_quantifiers_cegqiSingleInvReconstructConst(opts, option, false);
7428
      break;
7429
47
    case 879: // --sygus-si=MODE
7430
47
        assign_quantifiers_cegqiSingleInvMode(opts, option, optionarg);
7431
47
      break;
7432
4
    case 880: // --sygus-stream
7433
4
        assign_quantifiers_sygusStream(opts, option, true);
7434
4
      break;
7435
    case 881:// --no-sygus-stream
7436
        assign_quantifiers_sygusStream(opts, option, false);
7437
      break;
7438
    case 882: // --sygus-templ-embed-grammar
7439
        assign_quantifiers_sygusTemplEmbedGrammar(opts, option, true);
7440
      break;
7441
    case 883:// --no-sygus-templ-embed-grammar
7442
        assign_quantifiers_sygusTemplEmbedGrammar(opts, option, false);
7443
      break;
7444
    case 884: // --sygus-unif-cond-independent-no-repeat-sol
7445
        assign_quantifiers_sygusUnifCondIndNoRepeatSol(opts, option, true);
7446
      break;
7447
    case 885:// --no-sygus-unif-cond-independent-no-repeat-sol
7448
        assign_quantifiers_sygusUnifCondIndNoRepeatSol(opts, option, false);
7449
      break;
7450
9
    case 886: // --sygus-unif-pi=MODE
7451
9
        assign_quantifiers_sygusUnifPi(opts, option, optionarg);
7452
9
      break;
7453
    case 887: // --sygus-unif-shuffle-cond
7454
        assign_quantifiers_sygusUnifShuffleCond(opts, option, true);
7455
      break;
7456
    case 888:// --no-sygus-unif-shuffle-cond
7457
        assign_quantifiers_sygusUnifShuffleCond(opts, option, false);
7458
      break;
7459
    case 889: // --sygus-verify-inst-max-rounds=N
7460
        assign_quantifiers_sygusVerifyInstMaxRounds(opts, option, optionarg);
7461
      break;
7462
    case 890: // --term-db-cd
7463
        assign_quantifiers_termDbCd(opts, option, true);
7464
      break;
7465
    case 891:// --no-term-db-cd
7466
        assign_quantifiers_termDbCd(opts, option, false);
7467
      break;
7468
    case 892: // --term-db-mode=MODE
7469
        assign_quantifiers_termDbMode(opts, option, optionarg);
7470
      break;
7471
    case 893: // --trigger-active-sel=MODE
7472
        assign_quantifiers_triggerActiveSelMode(opts, option, optionarg);
7473
      break;
7474
    case 894: // --trigger-sel=MODE
7475
        assign_quantifiers_triggerSelMode(opts, option, optionarg);
7476
      break;
7477
    case 895: // --user-pat=MODE
7478
        assign_quantifiers_userPatternsQuant(opts, option, optionarg);
7479
      break;
7480
    case 896: // --var-elim-quant
7481
        assign_quantifiers_varElimQuant(opts, option, true);
7482
      break;
7483
    case 897:// --no-var-elim-quant
7484
        assign_quantifiers_varElimQuant(opts, option, false);
7485
      break;
7486
2
    case 898: // --var-ineq-elim-quant
7487
2
        assign_quantifiers_varIneqElimQuant(opts, option, true);
7488
2
      break;
7489
    case 899:// --no-var-ineq-elim-quant
7490
        assign_quantifiers_varIneqElimQuant(opts, option, false);
7491
      break;
7492
    case 900: // --sep-check-neg
7493
        assign_sep_sepCheckNeg(opts, option, true);
7494
      break;
7495
    case 901:// --no-sep-check-neg
7496
        assign_sep_sepCheckNeg(opts, option, false);
7497
      break;
7498
    case 902: // --sep-child-refine
7499
        assign_sep_sepChildRefine(opts, option, true);
7500
      break;
7501
    case 903:// --no-sep-child-refine
7502
        assign_sep_sepChildRefine(opts, option, false);
7503
      break;
7504
    case 904: // --sep-deq-c
7505
        assign_sep_sepDisequalC(opts, option, true);
7506
      break;
7507
    case 905:// --no-sep-deq-c
7508
        assign_sep_sepDisequalC(opts, option, false);
7509
      break;
7510
    case 906: // --sep-exp
7511
        assign_sep_sepExp(opts, option, true);
7512
      break;
7513
    case 907:// --no-sep-exp
7514
        assign_sep_sepExp(opts, option, false);
7515
      break;
7516
    case 908: // --sep-min-refine
7517
        assign_sep_sepMinimalRefine(opts, option, true);
7518
      break;
7519
    case 909:// --no-sep-min-refine
7520
        assign_sep_sepMinimalRefine(opts, option, false);
7521
      break;
7522
1
    case 910: // --sep-pre-skolem-emp
7523
1
        assign_sep_sepPreSkolemEmp(opts, option, true);
7524
1
      break;
7525
    case 911:// --no-sep-pre-skolem-emp
7526
        assign_sep_sepPreSkolemEmp(opts, option, false);
7527
      break;
7528
32
    case 912: // --sets-ext
7529
32
        assign_sets_setsExt(opts, option, true);
7530
32
      break;
7531
    case 913:// --no-sets-ext
7532
        assign_sets_setsExt(opts, option, false);
7533
      break;
7534
2
    case 914: // --sets-infer-as-lemmas
7535
2
        assign_sets_setsInferAsLemmas(opts, option, true);
7536
2
      break;
7537
    case 915:// --no-sets-infer-as-lemmas
7538
        assign_sets_setsInferAsLemmas(opts, option, false);
7539
      break;
7540
    case 916: // --sets-proxy-lemmas
7541
        assign_sets_setsProxyLemmas(opts, option, true);
7542
      break;
7543
    case 917:// --no-sets-proxy-lemmas
7544
        assign_sets_setsProxyLemmas(opts, option, false);
7545
      break;
7546
4
    case 918: // --abstract-values
7547
4
        assign_smt_abstractValues(opts, option, true);
7548
4
      break;
7549
    case 919:// --no-abstract-values
7550
        assign_smt_abstractValues(opts, option, false);
7551
      break;
7552
31
    case 920: // --ackermann
7553
31
        assign_smt_ackermann(opts, option, true);
7554
31
      break;
7555
    case 921:// --no-ackermann
7556
        assign_smt_ackermann(opts, option, false);
7557
      break;
7558
7
    case 922: // --block-models=MODE
7559
7
        assign_smt_blockModelsMode(opts, option, optionarg);
7560
7
      break;
7561
78
    case 923: // --bvand-integer-granularity=N
7562
78
        assign_smt_BVAndIntegerGranularity(opts, option, optionarg);
7563
78
      break;
7564
13
    case 924: // --check-abducts
7565
13
        assign_smt_checkAbducts(opts, option, true);
7566
13
      break;
7567
    case 925:// --no-check-abducts
7568
        assign_smt_checkAbducts(opts, option, false);
7569
      break;
7570
8
    case 926: // --check-interpols
7571
8
        assign_smt_checkInterpols(opts, option, true);
7572
8
      break;
7573
    case 927:// --no-check-interpols
7574
        assign_smt_checkInterpols(opts, option, false);
7575
      break;
7576
22
    case 928: // --check-models
7577
22
        assign_smt_checkModels(opts, option, true);
7578
22
      break;
7579
85
    case 929:// --no-check-models
7580
85
        assign_smt_checkModels(opts, option, false);
7581
85
      break;
7582
1147
    case 930: // --check-proofs
7583
1147
        assign_smt_checkProofs(opts, option, true);
7584
1147
      break;
7585
13
    case 931:// --no-check-proofs
7586
13
        assign_smt_checkProofs(opts, option, false);
7587
13
      break;
7588
182
    case 932: // --check-synth-sol
7589
182
        assign_smt_checkSynthSol(opts, option, true);
7590
182
      break;
7591
6
    case 933:// --no-check-synth-sol
7592
6
        assign_smt_checkSynthSol(opts, option, false);
7593
6
      break;
7594
1137
    case 934: // --check-unsat-cores
7595
1137
        assign_smt_checkUnsatCores(opts, option, true);
7596
1137
      break;
7597
40
    case 935:// --no-check-unsat-cores
7598
40
        assign_smt_checkUnsatCores(opts, option, false);
7599
40
      break;
7600
1224
    case 936: // --debug-check-models
7601
1224
        assign_smt_debugCheckModels(opts, option, true);
7602
1224
      break;
7603
    case 937:// --no-debug-check-models
7604
        assign_smt_debugCheckModels(opts, option, false);
7605
      break;
7606
    case 938: // --dump-to=FILE
7607
        assign_smt_dumpToFileName(opts, option, optionarg);
7608
      break;
7609
3
    case 939: // --dump=MODE
7610
3
        assign_smt_dumpModeString(opts, option, optionarg);
7611
2
      break;
7612
    case 940: // --early-ite-removal
7613
        assign_smt_earlyIteRemoval(opts, option, true);
7614
      break;
7615
    case 941:// --no-early-ite-removal
7616
        assign_smt_earlyIteRemoval(opts, option, false);
7617
      break;
7618
    case 942: // --expand-definitions
7619
        assign_smt_expandDefinitions(opts, option, true);
7620
      break;
7621
    case 943:// --no-expand-definitions
7622
        assign_smt_expandDefinitions(opts, option, false);
7623
      break;
7624
17
    case 944: // --ext-rew-prep
7625
17
        assign_smt_extRewPrep(opts, option, true);
7626
17
      break;
7627
    case 945:// --no-ext-rew-prep
7628
        assign_smt_extRewPrep(opts, option, false);
7629
      break;
7630
7
    case 946: // --ext-rew-prep-agg
7631
7
        assign_smt_extRewPrepAgg(opts, option, true);
7632
7
      break;
7633
    case 947:// --no-ext-rew-prep-agg
7634
        assign_smt_extRewPrepAgg(opts, option, false);
7635
      break;
7636
2
    case 948: // --foreign-theory-rewrite
7637
2
        assign_smt_foreignTheoryRewrite(opts, option, true);
7638
2
      break;
7639
    case 949:// --no-foreign-theory-rewrite
7640
        assign_smt_foreignTheoryRewrite(opts, option, false);
7641
      break;
7642
68
    case 950: // --iand-mode=mode
7643
68
        assign_smt_iandMode(opts, option, optionarg);
7644
68
      break;
7645
    case 951: // --interactive-mode
7646
        assign_smt_interactiveMode(opts, option, true);
7647
      break;
7648
    case 952:// --no-interactive-mode
7649
        assign_smt_interactiveMode(opts, option, false);
7650
      break;
7651
    case 953: // --ite-simp
7652
        assign_smt_doITESimp(opts, option, true);
7653
      break;
7654
    case 954:// --no-ite-simp
7655
        assign_smt_doITESimp(opts, option, false);
7656
      break;
7657
2
    case 955: // --learned-rewrite
7658
2
        assign_smt_learnedRewrite(opts, option, true);
7659
2
      break;
7660
    case 956:// --no-learned-rewrite
7661
        assign_smt_learnedRewrite(opts, option, false);
7662
      break;
7663
3
    case 957: // --minimal-unsat-cores
7664
3
        assign_smt_minimalUnsatCores(opts, option, true);
7665
3
      break;
7666
    case 958:// --no-minimal-unsat-cores
7667
        assign_smt_minimalUnsatCores(opts, option, false);
7668
      break;
7669
6
    case 959: // --model-cores=MODE
7670
6
        assign_smt_modelCoresMode(opts, option, optionarg);
7671
6
      break;
7672
1
    case 960: // --model-u-print=MODE
7673
    case 961: // --model-uninterp-print
7674
1
        assign_smt_modelUninterpPrint(opts, option, optionarg);
7675
1
      break;
7676
1
    case 962: // --model-witness-value
7677
1
        assign_smt_modelWitnessValue(opts, option, true);
7678
1
      break;
7679
    case 963:// --no-model-witness-value
7680
        assign_smt_modelWitnessValue(opts, option, false);
7681
      break;
7682
    case 964: // --on-repeat-ite-simp
7683
        assign_smt_doITESimpOnRepeat(opts, option, true);
7684
      break;
7685
    case 965:// --no-on-repeat-ite-simp
7686
        assign_smt_doITESimpOnRepeat(opts, option, false);
7687
      break;
7688
12
    case 966: // --produce-abducts
7689
12
        assign_smt_produceAbducts(opts, option, true);
7690
12
      break;
7691
    case 967:// --no-produce-abducts
7692
        assign_smt_produceAbducts(opts, option, false);
7693
      break;
7694
    case 968: // --produce-assertions
7695
        assign_smt_produceAssertions(opts, option, true);
7696
      break;
7697
    case 969:// --no-produce-assertions
7698
        assign_smt_produceAssertions(opts, option, false);
7699
      break;
7700
    case 970: // --produce-assignments
7701
        assign_smt_produceAssignments(opts, option, true);
7702
      break;
7703
    case 971:// --no-produce-assignments
7704
        assign_smt_produceAssignments(opts, option, false);
7705
      break;
7706
8
    case 972: // --produce-interpols=MODE
7707
8
        assign_smt_produceInterpols(opts, option, optionarg);
7708
8
      break;
7709
37
    case 'm':
7710
    case 973: // --produce-models
7711
37
        assign_smt_produceModels(opts, option, true);
7712
37
      break;
7713
    case 974:// --no-produce-models
7714
        assign_smt_produceModels(opts, option, false);
7715
      break;
7716
7
    case 975: // --produce-proofs
7717
7
        assign_smt_produceProofs(opts, option, true);
7718
7
      break;
7719
18
    case 976:// --no-produce-proofs
7720
18
        assign_smt_produceProofs(opts, option, false);
7721
18
      break;
7722
    case 977: // --produce-unsat-assumptions
7723
        assign_smt_unsatAssumptions(opts, option, true);
7724
      break;
7725
    case 978:// --no-produce-unsat-assumptions
7726
        assign_smt_unsatAssumptions(opts, option, false);
7727
      break;
7728
4
    case 979: // --produce-unsat-cores
7729
4
        assign_smt_unsatCores(opts, option, true);
7730
4
      break;
7731
2
    case 980:// --no-produce-unsat-cores
7732
2
        assign_smt_unsatCores(opts, option, false);
7733
2
      break;
7734
2
    case 981: // --repeat-simp
7735
2
        assign_smt_repeatSimp(opts, option, true);
7736
2
      break;
7737
    case 982:// --no-repeat-simp
7738
        assign_smt_repeatSimp(opts, option, false);
7739
      break;
7740
    case 983: // --simp-ite-compress
7741
        assign_smt_compressItes(opts, option, true);
7742
      break;
7743
    case 984:// --no-simp-ite-compress
7744
        assign_smt_compressItes(opts, option, false);
7745
      break;
7746
    case 985: // --simp-ite-hunt-zombies=N
7747
        assign_smt_zombieHuntThreshold(opts, option, optionarg);
7748
      break;
7749
    case 986: // --simp-with-care
7750
        assign_smt_simplifyWithCareEnabled(opts, option, true);
7751
      break;
7752
    case 987:// --no-simp-with-care
7753
        assign_smt_simplifyWithCareEnabled(opts, option, false);
7754
      break;
7755
31
    case 988: // --simplification=MODE
7756
    case 989: // --simplification-mode
7757
31
        assign_smt_simplificationMode(opts, option, optionarg);
7758
31
      break;
7759
135
    case 990: // --solve-bv-as-int=MODE
7760
135
        assign_smt_solveBVAsInt(opts, option, optionarg);
7761
135
      break;
7762
11
    case 991: // --solve-int-as-bv=N
7763
11
        assign_smt_solveIntAsBV(opts, option, optionarg);
7764
11
      break;
7765
9
    case 992: // --solve-real-as-int
7766
9
        assign_smt_solveRealAsInt(opts, option, true);
7767
9
      break;
7768
    case 993:// --no-solve-real-as-int
7769
        assign_smt_solveRealAsInt(opts, option, false);
7770
      break;
7771
20
    case 994: // --sort-inference
7772
20
        assign_smt_sortInference(opts, option, true);
7773
20
      break;
7774
    case 995:// --no-sort-inference
7775
        assign_smt_sortInference(opts, option, false);
7776
      break;
7777
    case 996: // --static-learning
7778
        assign_smt_doStaticLearning(opts, option, true);
7779
      break;
7780
    case 997:// --no-static-learning
7781
        assign_smt_doStaticLearning(opts, option, false);
7782
      break;
7783
182
    case 998: // --sygus-out=MODE
7784
182
        assign_smt_sygusOut(opts, option, optionarg);
7785
182
      break;
7786
    case 999: // --sygus-print-callbacks
7787
        assign_smt_sygusPrintCallbacks(opts, option, true);
7788
      break;
7789
    case 1000:// --no-sygus-print-callbacks
7790
        assign_smt_sygusPrintCallbacks(opts, option, false);
7791
      break;
7792
104
    case 1001: // --unconstrained-simp
7793
104
        assign_smt_unconstrainedSimp(opts, option, true);
7794
104
      break;
7795
3
    case 1002:// --no-unconstrained-simp
7796
3
        assign_smt_unconstrainedSimp(opts, option, false);
7797
3
      break;
7798
2
    case 1003: // --unsat-cores-mode=MODE
7799
2
        assign_smt_unsatCoresMode(opts, option, optionarg);
7800
2
      break;
7801
25
    case 1004: // --re-elim
7802
25
        assign_strings_regExpElim(opts, option, true);
7803
25
      break;
7804
10
    case 1005:// --no-re-elim
7805
10
        assign_strings_regExpElim(opts, option, false);
7806
10
      break;
7807
12
    case 1006: // --re-elim-agg
7808
12
        assign_strings_regExpElimAgg(opts, option, true);
7809
12
      break;
7810
    case 1007:// --no-re-elim-agg
7811
        assign_strings_regExpElimAgg(opts, option, false);
7812
      break;
7813
    case 1008: // --re-inter-mode=MODE
7814
        assign_strings_stringRegExpInterMode(opts, option, optionarg);
7815
      break;
7816
    case 1009: // --strings-check-entail-len
7817
        assign_strings_stringCheckEntailLen(opts, option, true);
7818
      break;
7819
    case 1010:// --no-strings-check-entail-len
7820
        assign_strings_stringCheckEntailLen(opts, option, false);
7821
      break;
7822
2
    case 1011: // --strings-eager
7823
2
        assign_strings_stringEager(opts, option, true);
7824
2
      break;
7825
    case 1012:// --no-strings-eager
7826
        assign_strings_stringEager(opts, option, false);
7827
      break;
7828
    case 1013: // --strings-eager-eval
7829
        assign_strings_stringEagerEval(opts, option, true);
7830
      break;
7831
    case 1014:// --no-strings-eager-eval
7832
        assign_strings_stringEagerEval(opts, option, false);
7833
      break;
7834
    case 1015: // --strings-eager-len
7835
        assign_strings_stringEagerLen(opts, option, true);
7836
      break;
7837
    case 1016:// --no-strings-eager-len
7838
        assign_strings_stringEagerLen(opts, option, false);
7839
      break;
7840
328
    case 1017: // --strings-exp
7841
328
        assign_strings_stringExp(opts, option, true);
7842
328
      break;
7843
    case 1018:// --no-strings-exp
7844
        assign_strings_stringExp(opts, option, false);
7845
      break;
7846
    case 1019: // --strings-ff
7847
        assign_strings_stringFlatForms(opts, option, true);
7848
      break;
7849
    case 1020:// --no-strings-ff
7850
        assign_strings_stringFlatForms(opts, option, false);
7851
      break;
7852
25
    case 1021: // --strings-fmf
7853
25
        assign_strings_stringFMF(opts, option, true);
7854
25
      break;
7855
    case 1022:// --no-strings-fmf
7856
        assign_strings_stringFMF(opts, option, false);
7857
      break;
7858
    case 1023: // --strings-guess-model
7859
        assign_strings_stringGuessModel(opts, option, true);
7860
      break;
7861
    case 1024:// --no-strings-guess-model
7862
        assign_strings_stringGuessModel(opts, option, false);
7863
      break;
7864
    case 1025: // --strings-infer-as-lemmas
7865
        assign_strings_stringInferAsLemmas(opts, option, true);
7866
      break;
7867
    case 1026:// --no-strings-infer-as-lemmas
7868
        assign_strings_stringInferAsLemmas(opts, option, false);
7869
      break;
7870
    case 1027: // --strings-infer-sym
7871
        assign_strings_stringInferSym(opts, option, true);
7872
      break;
7873
    case 1028:// --no-strings-infer-sym
7874
        assign_strings_stringInferSym(opts, option, false);
7875
      break;
7876
    case 1029: // --strings-lazy-pp
7877
        assign_strings_stringLazyPreproc(opts, option, true);
7878
      break;
7879
21
    case 1030:// --no-strings-lazy-pp
7880
21
        assign_strings_stringLazyPreproc(opts, option, false);
7881
21
      break;
7882
    case 1031: // --strings-len-norm
7883
        assign_strings_stringLenNorm(opts, option, true);
7884
      break;
7885
    case 1032:// --no-strings-len-norm
7886
        assign_strings_stringLenNorm(opts, option, false);
7887
      break;
7888
    case 1033: // --strings-lprop-csp
7889
        assign_strings_stringLenPropCsp(opts, option, true);
7890
      break;
7891
    case 1034:// --no-strings-lprop-csp
7892
        assign_strings_stringLenPropCsp(opts, option, false);
7893
      break;
7894
    case 1035: // --strings-min-prefix-explain
7895
        assign_strings_stringMinPrefixExplain(opts, option, true);
7896
      break;
7897
    case 1036:// --no-strings-min-prefix-explain
7898
        assign_strings_stringMinPrefixExplain(opts, option, false);
7899
      break;
7900
    case 1037: // --strings-process-loop-mode=MODE
7901
        assign_strings_stringProcessLoopMode(opts, option, optionarg);
7902
      break;
7903
    case 1038: // --strings-rexplain-lemmas
7904
        assign_strings_stringRExplainLemmas(opts, option, true);
7905
      break;
7906
    case 1039:// --no-strings-rexplain-lemmas
7907
        assign_strings_stringRExplainLemmas(opts, option, false);
7908
      break;
7909
    case 1040: // --strings-unified-vspt
7910
        assign_strings_stringUnifiedVSpt(opts, option, true);
7911
      break;
7912
    case 1041:// --no-strings-unified-vspt
7913
        assign_strings_stringUnifiedVSpt(opts, option, false);
7914
      break;
7915
    case 1042: // --assign-function-values
7916
        assign_theory_assignFunctionValues(opts, option, true);
7917
      break;
7918
    case 1043:// --no-assign-function-values
7919
        assign_theory_assignFunctionValues(opts, option, false);
7920
      break;
7921
    case 1044: // --condense-function-values
7922
        assign_theory_condenseFunctionValues(opts, option, true);
7923
      break;
7924
    case 1045:// --no-condense-function-values
7925
        assign_theory_condenseFunctionValues(opts, option, false);
7926
      break;
7927
56
    case 1046: // --ee-mode=MODE
7928
56
        assign_theory_eeMode(opts, option, optionarg);
7929
56
      break;
7930
    case 1047: // --relevance-filter
7931
        assign_theory_relevanceFilter(opts, option, true);
7932
      break;
7933
    case 1048:// --no-relevance-filter
7934
        assign_theory_relevanceFilter(opts, option, false);
7935
      break;
7936
    case 1049: // --tc-mode=MODE
7937
        assign_theory_tcMode(opts, option, optionarg);
7938
      break;
7939
5
    case 1050: // --theoryof-mode=MODE
7940
5
        assign_theory_theoryOfMode(opts, option, optionarg);
7941
5
      break;
7942
    case 1051: // --symmetry-breaker
7943
    case 1052: // --uf-symmetry-breaker
7944
        assign_uf_ufSymmetryBreaker(opts, option, true);
7945
      break;
7946
    case 1053:// --no-symmetry-breaker
7947
    case 1054:// --no-uf-symmetry-breaker
7948
        assign_uf_ufSymmetryBreaker(opts, option, false);
7949
      break;
7950
    case 1055: // --uf-ho
7951
        assign_uf_ufHo(opts, option, true);
7952
      break;
7953
    case 1056:// --no-uf-ho
7954
        assign_uf_ufHo(opts, option, false);
7955
      break;
7956
    case 1057: // --uf-ho-ext
7957
        assign_uf_ufHoExt(opts, option, true);
7958
      break;
7959
    case 1058:// --no-uf-ho-ext
7960
        assign_uf_ufHoExt(opts, option, false);
7961
      break;
7962
    case 1059: // --uf-ss-abort-card=N
7963
        assign_uf_ufssAbortCardinality(opts, option, optionarg);
7964
      break;
7965
    case 1060: // --uf-ss-fair
7966
        assign_uf_ufssFairness(opts, option, true);
7967
      break;
7968
    case 1061:// --no-uf-ss-fair
7969
        assign_uf_ufssFairness(opts, option, false);
7970
      break;
7971
4
    case 1062: // --uf-ss-fair-monotone
7972
4
        assign_uf_ufssFairnessMonotone(opts, option, true);
7973
4
      break;
7974
    case 1063:// --no-uf-ss-fair-monotone
7975
        assign_uf_ufssFairnessMonotone(opts, option, false);
7976
      break;
7977
    case 1064: // --uf-ss-totality-limited=N
7978
        assign_uf_ufssTotalityLimited(opts, option, optionarg);
7979
      break;
7980
    case 1065: // --uf-ss-totality-sym-break
7981
        assign_uf_ufssTotalitySymBreak(opts, option, true);
7982
      break;
7983
    case 1066:// --no-uf-ss-totality-sym-break
7984
        assign_uf_ufssTotalitySymBreak(opts, option, false);
7985
      break;
7986
7
    case 1067: // --uf-ss=MODE
7987
7
        assign_uf_ufssMode(opts, option, optionarg);
7988
7
      break;
7989
7990
      case ':' :
7991
      // This can be a long or short option, and the way to get at the
7992
      // name of it is different.
7993
      throw OptionException(std::string("option `") + option
7994
                            + "' missing its required argument");
7995
7996
      case '?':
7997
      default:
7998
        throw OptionException(std::string("can't understand option `") + option
7999
                              + "'" + suggestCommandLineOptions(option));
8000
    }
8001
15464
  }
8002
  // clang-format on
8003
8004
18579
  Debug("options") << "got " << nonoptions.size()
8005
6193
                   << " non-option arguments." << std::endl;
8006
6193
}
8007
8008
/**
8009
 * Parse argc/argv and put the result into a cvc5::Options.
8010
 * The return value is what's left of the command line (that is, the
8011
 * non-option arguments).
8012
 *
8013
 * Throws OptionException on failures.
8014
 */
8015
8796
std::vector<std::string> parse(
8016
    Options & opts, int argc, char* argv[], std::string& binaryName)
8017
{
8018
8796
  Assert(argv != nullptr);
8019
8020
8796
  Options* cur = &Options::current();
8021
14990
  OptionsGuard guard(&cur, &opts);
8022
8023
8796
  const char *progName = argv[0];
8024
8025
  // To debug options parsing, you may prefer to simply uncomment this
8026
  // and recompile. Debug flags have not been parsed yet so these have
8027
  // not been set.
8028
  //DebugChannel.on("options");
8029
8030
8796
  Debug("options") << "options::parse == " << &opts << std::endl;
8031
8796
  Debug("options") << "argv == " << argv << std::endl;
8032
8033
  // Find the base name of the program.
8034
8796
  const char *x = strrchr(progName, '/');
8035
8796
  if(x != nullptr) {
8036
8732
    progName = x + 1;
8037
  }
8038
8796
  binaryName = std::string(progName);
8039
8040
8796
  std::vector<std::string> nonoptions;
8041
8796
  parseInternal(opts, argc, argv, nonoptions);
8042
6193
  if (Debug.isOn("options")){
8043
    for(std::vector<std::string>::const_iterator i = nonoptions.begin(),
8044
          iend = nonoptions.end(); i != iend; ++i){
8045
      Debug("options") << "nonoptions " << *i << std::endl;
8046
    }
8047
  }
8048
8049
12386
  return nonoptions;
8050
}
8051
8052
59
std::string get(const Options& options, const std::string& name)
8053
{
8054
59
  Trace("options") << "Options::getOption(" << name << ")" << std::endl;
8055
59
  if (name == "approx-branch-depth") {
8056
return std::to_string(options.arith.maxApproxDepth);
8057
}
8058
59
if (name == "arith-brab") {
8059
return options.arith.brabTest ? "true" : "false";
8060
}
8061
59
if (name == "arith-cong-man") {
8062
return options.arith.arithCongMan ? "true" : "false";
8063
}
8064
59
if (name == "arith-eq-solver") {
8065
return options.arith.arithEqSolver ? "true" : "false";
8066
}
8067
59
if (name == "arith-no-partial-fun") {
8068
return options.arith.arithNoPartialFun ? "true" : "false";
8069
}
8070
59
if (name == "arith-prop-clauses") {
8071
return std::to_string(options.arith.arithPropAsLemmaLength);
8072
}
8073
59
if (name == "arith-prop") {
8074
std::stringstream ss;
8075
ss << options.arith.arithPropagationMode;
8076
return ss.str();
8077
}
8078
59
if (name == "arith-rewrite-equalities") {
8079
return options.arith.arithRewriteEq ? "true" : "false";
8080
}
8081
59
if (name == "collect-pivot-stats") {
8082
return options.arith.collectPivots ? "true" : "false";
8083
}
8084
59
if (name == "cut-all-bounded") {
8085
return options.arith.doCutAllBounded ? "true" : "false";
8086
}
8087
59
if (name == "dio-decomps") {
8088
return options.arith.exportDioDecompositions ? "true" : "false";
8089
}
8090
59
if (name == "dio-repeat") {
8091
return options.arith.dioRepeat ? "true" : "false";
8092
}
8093
59
if (name == "dio-solver") {
8094
return options.arith.arithDioSolver ? "true" : "false";
8095
}
8096
59
if (name == "dio-turns") {
8097
return std::to_string(options.arith.dioSolverTurns);
8098
}
8099
59
if (name == "error-selection-rule") {
8100
std::stringstream ss;
8101
ss << options.arith.arithErrorSelectionRule;
8102
return ss.str();
8103
}
8104
59
if (name == "fc-penalties") {
8105
return options.arith.havePenalties ? "true" : "false";
8106
}
8107
59
if (name == "heuristic-pivots") {
8108
return std::to_string(options.arith.arithHeuristicPivots);
8109
}
8110
59
if (name == "lemmas-on-replay-failure") {
8111
return options.arith.replayFailureLemma ? "true" : "false";
8112
}
8113
59
if (name == "maxCutsInContext") {
8114
return std::to_string(options.arith.maxCutsInContext);
8115
}
8116
59
if (name == "miplib-trick") {
8117
return options.arith.arithMLTrick ? "true" : "false";
8118
}
8119
59
if (name == "miplib-trick-subs") {
8120
return std::to_string(options.arith.arithMLTrickSubstitutions);
8121
}
8122
59
if (name == "new-prop") {
8123
return options.arith.newProp ? "true" : "false";
8124
}
8125
59
if (name == "nl-cad") {
8126
return options.arith.nlCad ? "true" : "false";
8127
}
8128
59
if (name == "nl-cad-initial") {
8129
return options.arith.nlCadUseInitial ? "true" : "false";
8130
}
8131
59
if (name == "nl-cad-lift") {
8132
std::stringstream ss;
8133
ss << options.arith.nlCadLifting;
8134
return ss.str();
8135
}
8136
59
if (name == "nl-cad-proj") {
8137
std::stringstream ss;
8138
ss << options.arith.nlCadProjection;
8139
return ss.str();
8140
}
8141
59
if (name == "nl-ext-ent-conf") {
8142
return options.arith.nlExtEntailConflicts ? "true" : "false";
8143
}
8144
59
if (name == "nl-ext-factor") {
8145
return options.arith.nlExtFactor ? "true" : "false";
8146
}
8147
59
if (name == "nl-ext-inc-prec") {
8148
return options.arith.nlExtIncPrecision ? "true" : "false";
8149
}
8150
59
if (name == "nl-ext-purify") {
8151
return options.arith.nlExtPurify ? "true" : "false";
8152
}
8153
59
if (name == "nl-ext-rbound") {
8154
return options.arith.nlExtResBound ? "true" : "false";
8155
}
8156
59
if (name == "nl-ext-rewrite") {
8157
return options.arith.nlExtRewrites ? "true" : "false";
8158
}
8159
59
if (name == "nl-ext-split-zero") {
8160
return options.arith.nlExtSplitZero ? "true" : "false";
8161
}
8162
59
if (name == "nl-ext-tf-taylor-deg") {
8163
return std::to_string(options.arith.nlExtTfTaylorDegree);
8164
}
8165
59
if (name == "nl-ext-tf-tplanes") {
8166
return options.arith.nlExtTfTangentPlanes ? "true" : "false";
8167
}
8168
59
if (name == "nl-ext-tplanes") {
8169
return options.arith.nlExtTangentPlanes ? "true" : "false";
8170
}
8171
59
if (name == "nl-ext-tplanes-interleave") {
8172
return options.arith.nlExtTangentPlanesInterleave ? "true" : "false";
8173
}
8174
59
if (name == "nl-ext") {
8175
std::stringstream ss;
8176
ss << options.arith.nlExt;
8177
return ss.str();
8178
}
8179
59
if (name == "nl-icp") {
8180
return options.arith.nlICP ? "true" : "false";
8181
}
8182
59
if (name == "nl-rlv") {
8183
std::stringstream ss;
8184
ss << options.arith.nlRlvMode;
8185
return ss.str();
8186
}
8187
59
if (name == "pb-rewrites") {
8188
return options.arith.pbRewrites ? "true" : "false";
8189
}
8190
59
if (name == "pivot-threshold") {
8191
return std::to_string(options.arith.arithPivotThreshold);
8192
}
8193
59
if (name == "pp-assert-max-sub-size") {
8194
return std::to_string(options.arith.ppAssertMaxSubSize);
8195
}
8196
59
if (name == "prop-row-length") {
8197
return std::to_string(options.arith.arithPropagateMaxLength);
8198
}
8199
59
if (name == "replay-early-close-depth") {
8200
return std::to_string(options.arith.replayEarlyCloseDepths);
8201
}
8202
59
if (name == "replay-failure-penalty") {
8203
return std::to_string(options.arith.replayFailurePenalty);
8204
}
8205
59
if (name == "replay-lemma-reject-cut") {
8206
return std::to_string(options.arith.lemmaRejectCutSize);
8207
}
8208
59
if (name == "replay-num-err-penalty") {
8209
return std::to_string(options.arith.replayNumericFailurePenalty);
8210
}
8211
59
if (name == "replay-reject-cut") {
8212
return std::to_string(options.arith.replayRejectCutSize);
8213
}
8214
59
if (name == "replay-soi-major-threshold-pen") {
8215
return std::to_string(options.arith.soiApproxMajorFailurePen);
8216
}
8217
59
if (name == "replay-soi-major-threshold") {
8218
return std::to_string(options.arith.soiApproxMajorFailure);
8219
}
8220
59
if (name == "replay-soi-minor-threshold-pen") {
8221
return std::to_string(options.arith.soiApproxMinorFailurePen);
8222
}
8223
59
if (name == "replay-soi-minor-threshold") {
8224
return std::to_string(options.arith.soiApproxMinorFailure);
8225
}
8226
59
if (name == "restrict-pivots") {
8227
return options.arith.restrictedPivots ? "true" : "false";
8228
}
8229
59
if (name == "revert-arith-models-on-unsat") {
8230
return options.arith.revertArithModels ? "true" : "false";
8231
}
8232
59
if (name == "rr-turns") {
8233
return std::to_string(options.arith.rrTurns);
8234
}
8235
59
if (name == "se-solve-int") {
8236
return options.arith.trySolveIntStandardEffort ? "true" : "false";
8237
}
8238
59
if (name == "simplex-check-period") {
8239
return std::to_string(options.arith.arithSimplexCheckPeriod);
8240
}
8241
59
if (name == "soi-qe") {
8242
return options.arith.soiQuickExplain ? "true" : "false";
8243
}
8244
59
if (name == "standard-effort-variable-order-pivots") {
8245
return std::to_string(options.arith.arithStandardCheckVarOrderPivots);
8246
}
8247
59
if (name == "unate-lemmas") {
8248
std::stringstream ss;
8249
ss << options.arith.arithUnateLemmaMode;
8250
return ss.str();
8251
}
8252
59
if (name == "use-approx") {
8253
return options.arith.useApprox ? "true" : "false";
8254
}
8255
59
if (name == "use-fcsimplex") {
8256
return options.arith.useFC ? "true" : "false";
8257
}
8258
59
if (name == "use-soi") {
8259
return options.arith.useSOI ? "true" : "false";
8260
}
8261
59
if (name == "arrays-config") {
8262
return std::to_string(options.arrays.arraysConfig);
8263
}
8264
59
if (name == "arrays-eager-index") {
8265
return options.arrays.arraysEagerIndexSplitting ? "true" : "false";
8266
}
8267
59
if (name == "arrays-eager-lemmas") {
8268
return options.arrays.arraysEagerLemmas ? "true" : "false";
8269
}
8270
59
if (name == "arrays-exp") {
8271
17
return options.arrays.arraysExp ? "true" : "false";
8272
}
8273
42
if (name == "arrays-model-based") {
8274
return options.arrays.arraysModelBased ? "true" : "false";
8275
}
8276
42
if (name == "arrays-optimize-linear") {
8277
return options.arrays.arraysOptimizeLinear ? "true" : "false";
8278
}
8279
42
if (name == "arrays-prop") {
8280
return std::to_string(options.arrays.arraysPropagate);
8281
}
8282
42
if (name == "arrays-reduce-sharing") {
8283
return options.arrays.arraysReduceSharing ? "true" : "false";
8284
}
8285
42
if (name == "arrays-weak-equiv") {
8286
return options.arrays.arraysWeakEquivalence ? "true" : "false";
8287
}
8288
42
if (name == "diagnostic-output-channel" || name == "err") {
8289
std::stringstream ss;
8290
ss << options.base.err;
8291
return ss.str();
8292
}
8293
42
if (name == "in") {
8294
std::stringstream ss;
8295
ss << options.base.in;
8296
return ss.str();
8297
}
8298
42
if (name == "incremental") {
8299
2
return options.base.incrementalSolving ? "true" : "false";
8300
}
8301
40
if (name == "input-language" || name == "lang") {
8302
2
std::stringstream ss;
8303
1
ss << options.base.inputLanguage;
8304
1
return ss.str();
8305
}
8306
39
if (name == "out" || name == "regular-output-channel") {
8307
std::stringstream ss;
8308
ss << options.base.out;
8309
return ss.str();
8310
}
8311
39
if (name == "output-lang" || name == "output-language") {
8312
std::stringstream ss;
8313
ss << options.base.outputLanguage;
8314
return ss.str();
8315
}
8316
39
if (name == "output") {
8317
std::stringstream ss;
8318
ss << options.base.outputTag;
8319
return ss.str();
8320
}
8321
39
if (name == "parse-only") {
8322
return options.base.parseOnly ? "true" : "false";
8323
}
8324
39
if (name == "preprocess-only") {
8325
return options.base.preprocessOnly ? "true" : "false";
8326
}
8327
39
if (name == "print-success") {
8328
return options.base.printSuccess ? "true" : "false";
8329
}
8330
39
if (name == "reproducible-resource-limit" || name == "rlimit-per") {
8331
return std::to_string(options.base.perCallResourceLimit);
8332
}
8333
39
if (name == "rlimit") {
8334
return std::to_string(options.base.cumulativeResourceLimit);
8335
}
8336
39
if (name == "stats") {
8337
5
return options.base.statistics ? "true" : "false";
8338
}
8339
34
if (name == "stats-all") {
8340
5
return options.base.statisticsAll ? "true" : "false";
8341
}
8342
29
if (name == "stats-every-query") {
8343
5
return options.base.statisticsEveryQuery ? "true" : "false";
8344
}
8345
24
if (name == "stats-expert") {
8346
5
return options.base.statisticsExpert ? "true" : "false";
8347
}
8348
19
if (name == "tlimit-per") {
8349
return std::to_string(options.base.perCallMillisecondLimit);
8350
}
8351
19
if (name == "tlimit") {
8352
return std::to_string(options.base.cumulativeMillisecondLimit);
8353
}
8354
19
if (name == "verbosity") {
8355
6
return std::to_string(options.base.verbosity);
8356
}
8357
13
if (name == "bitblast-aig") {
8358
return options.bv.bitvectorAig ? "true" : "false";
8359
}
8360
13
if (name == "bitblast") {
8361
std::stringstream ss;
8362
ss << options.bv.bitblastMode;
8363
return ss.str();
8364
}
8365
13
if (name == "bitwise-eq") {
8366
return options.bv.bitwiseEq ? "true" : "false";
8367
}
8368
13
if (name == "bool-to-bv") {
8369
std::stringstream ss;
8370
ss << options.bv.boolToBitvector;
8371
return ss.str();
8372
}
8373
13
if (name == "bv-abstraction") {
8374
return options.bv.bvAbstraction ? "true" : "false";
8375
}
8376
13
if (name == "bv-aig-simp") {
8377
return options.bv.bitvectorAigSimplifications;
8378
}
8379
13
if (name == "bv-alg-extf") {
8380
return options.bv.bvAlgExtf ? "true" : "false";
8381
}
8382
13
if (name == "bv-algebraic-budget") {
8383
return std::to_string(options.bv.bitvectorAlgebraicBudget);
8384
}
8385
13
if (name == "bv-algebraic-solver") {
8386
return options.bv.bitvectorAlgebraicSolver ? "true" : "false";
8387
}
8388
13
if (name == "bv-assert-input") {
8389
return options.bv.bvAssertInput ? "true" : "false";
8390
}
8391
13
if (name == "bv-eager-explanations") {
8392
return options.bv.bvEagerExplanations ? "true" : "false";
8393
}
8394
13
if (name == "bv-eq-solver") {
8395
return options.bv.bitvectorEqualitySolver ? "true" : "false";
8396
}
8397
13
if (name == "bv-extract-arith") {
8398
return options.bv.bvExtractArithRewrite ? "true" : "false";
8399
}
8400
13
if (name == "bv-gauss-elim") {
8401
return options.bv.bvGaussElim ? "true" : "false";
8402
}
8403
13
if (name == "bv-inequality-solver") {
8404
return options.bv.bitvectorInequalitySolver ? "true" : "false";
8405
}
8406
13
if (name == "bv-intro-pow2") {
8407
return options.bv.bvIntroducePow2 ? "true" : "false";
8408
}
8409
13
if (name == "bv-num-func") {
8410
return std::to_string(options.bv.bvNumFunc);
8411
}
8412
13
if (name == "bv-print-consts-as-indexed-symbols") {
8413
return options.bv.bvPrintConstsAsIndexedSymbols ? "true" : "false";
8414
}
8415
13
if (name == "bv-propagate") {
8416
return options.bv.bitvectorPropagate ? "true" : "false";
8417
}
8418
13
if (name == "bv-quick-xplain") {
8419
return options.bv.bitvectorQuickXplain ? "true" : "false";
8420
}
8421
13
if (name == "bv-sat-solver") {
8422
std::stringstream ss;
8423
ss << options.bv.bvSatSolver;
8424
return ss.str();
8425
}
8426
13
if (name == "bv-skolemize") {
8427
return options.bv.skolemizeArguments ? "true" : "false";
8428
}
8429
13
if (name == "bv-solver") {
8430
std::stringstream ss;
8431
ss << options.bv.bvSolver;
8432
return ss.str();
8433
}
8434
13
if (name == "bv-to-bool") {
8435
return options.bv.bitvectorToBool ? "true" : "false";
8436
}
8437
13
if (name == "cdt-bisimilar") {
8438
return options.datatypes.cdtBisimilar ? "true" : "false";
8439
}
8440
13
if (name == "dt-binary-split") {
8441
return options.datatypes.dtBinarySplit ? "true" : "false";
8442
}
8443
13
if (name == "dt-blast-splits") {
8444
return options.datatypes.dtBlastSplits ? "true" : "false";
8445
}
8446
13
if (name == "dt-cyclic") {
8447
return options.datatypes.dtCyclic ? "true" : "false";
8448
}
8449
13
if (name == "dt-force-assignment") {
8450
return options.datatypes.dtForceAssignment ? "true" : "false";
8451
}
8452
13
if (name == "dt-infer-as-lemmas") {
8453
return options.datatypes.dtInferAsLemmas ? "true" : "false";
8454
}
8455
13
if (name == "dt-nested-rec") {
8456
return options.datatypes.dtNestedRec ? "true" : "false";
8457
}
8458
13
if (name == "dt-polite-optimize") {
8459
return options.datatypes.dtPoliteOptimize ? "true" : "false";
8460
}
8461
13
if (name == "dt-rewrite-error-sel") {
8462
return options.datatypes.dtRewriteErrorSel ? "true" : "false";
8463
}
8464
13
if (name == "dt-share-sel") {
8465
return options.datatypes.dtSharedSelectors ? "true" : "false";
8466
}
8467
13
if (name == "sygus-abort-size") {
8468
return std::to_string(options.datatypes.sygusAbortSize);
8469
}
8470
13
if (name == "sygus-fair-max") {
8471
return options.datatypes.sygusFairMax ? "true" : "false";
8472
}
8473
13
if (name == "sygus-fair") {
8474
std::stringstream ss;
8475
ss << options.datatypes.sygusFair;
8476
return ss.str();
8477
}
8478
13
if (name == "sygus-sym-break") {
8479
return options.datatypes.sygusSymBreak ? "true" : "false";
8480
}
8481
13
if (name == "sygus-sym-break-agg") {
8482
return options.datatypes.sygusSymBreakAgg ? "true" : "false";
8483
}
8484
13
if (name == "sygus-sym-break-dynamic") {
8485
return options.datatypes.sygusSymBreakDynamic ? "true" : "false";
8486
}
8487
13
if (name == "sygus-sym-break-lazy") {
8488
return options.datatypes.sygusSymBreakLazy ? "true" : "false";
8489
}
8490
13
if (name == "sygus-sym-break-pbe") {
8491
return options.datatypes.sygusSymBreakPbe ? "true" : "false";
8492
}
8493
13
if (name == "sygus-sym-break-rlv") {
8494
return options.datatypes.sygusSymBreakRlv ? "true" : "false";
8495
}
8496
13
if (name == "decision-random-weight") {
8497
return std::to_string(options.decision.decisionRandomWeight);
8498
}
8499
13
if (name == "decision-threshold") {
8500
std::stringstream ss;
8501
ss << options.decision.decisionThreshold;
8502
return ss.str();
8503
}
8504
13
if (name == "decision-use-weight") {
8505
return options.decision.decisionUseWeight ? "true" : "false";
8506
}
8507
13
if (name == "decision-weight-internal") {
8508
std::stringstream ss;
8509
ss << options.decision.decisionWeightInternal;
8510
return ss.str();
8511
}
8512
13
if (name == "decision" || name == "decision-mode") {
8513
std::stringstream ss;
8514
ss << options.decision.decisionMode;
8515
return ss.str();
8516
}
8517
13
if (name == "jh-rlv-order") {
8518
return options.decision.jhRlvOrder ? "true" : "false";
8519
}
8520
13
if (name == "jh-skolem-rlv") {
8521
std::stringstream ss;
8522
ss << options.decision.jhSkolemRlvMode;
8523
return ss.str();
8524
}
8525
13
if (name == "jh-skolem") {
8526
std::stringstream ss;
8527
ss << options.decision.jhSkolemMode;
8528
return ss.str();
8529
}
8530
13
if (name == "dag-thresh") {
8531
1
return std::to_string(options.expr.defaultDagThresh);
8532
}
8533
12
if (name == "expr-depth") {
8534
return std::to_string(options.expr.defaultExprDepth);
8535
}
8536
12
if (name == "type-checking") {
8537
return options.expr.typeChecking ? "true" : "false";
8538
}
8539
12
if (name == "fp-exp") {
8540
return options.fp.fpExp ? "true" : "false";
8541
}
8542
12
if (name == "fp-lazy-wb") {
8543
return options.fp.fpLazyWb ? "true" : "false";
8544
}
8545
12
if (name == "dump-instantiations") {
8546
return options.driver.dumpInstantiations ? "true" : "false";
8547
}
8548
12
if (name == "dump-instantiations-debug") {
8549
return options.driver.dumpInstantiationsDebug ? "true" : "false";
8550
}
8551
12
if (name == "dump-models") {
8552
return options.driver.dumpModels ? "true" : "false";
8553
}
8554
12
if (name == "dump-proofs") {
8555
return options.driver.dumpProofs ? "true" : "false";
8556
}
8557
12
if (name == "dump-unsat-cores") {
8558
return options.driver.dumpUnsatCores ? "true" : "false";
8559
}
8560
12
if (name == "dump-unsat-cores-full") {
8561
return options.driver.dumpUnsatCoresFull ? "true" : "false";
8562
}
8563
12
if (name == "early-exit") {
8564
return options.driver.earlyExit ? "true" : "false";
8565
}
8566
12
if (name == "force-no-limit-cpu-while-dump") {
8567
return options.driver.forceNoLimitCpuWhileDump ? "true" : "false";
8568
}
8569
12
if (name == "help") {
8570
return options.driver.help ? "true" : "false";
8571
}
8572
12
if (name == "interactive") {
8573
return options.driver.interactive ? "true" : "false";
8574
}
8575
12
if (name == "interactive-prompt") {
8576
return options.driver.interactivePrompt ? "true" : "false";
8577
}
8578
12
if (name == "seed") {
8579
return std::to_string(options.driver.seed);
8580
}
8581
12
if (name == "segv-spin") {
8582
return options.driver.segvSpin ? "true" : "false";
8583
}
8584
12
if (name == "version") {
8585
return options.driver.version ? "true" : "false";
8586
}
8587
12
if (name == "filesystem-access") {
8588
return options.parser.filesystemAccess ? "true" : "false";
8589
}
8590
12
if (name == "force-logic") {
8591
return options.parser.forceLogicString;
8592
}
8593
12
if (name == "global-declarations") {
8594
return options.parser.globalDeclarations ? "true" : "false";
8595
}
8596
12
if (name == "mmap") {
8597
return options.parser.memoryMap ? "true" : "false";
8598
}
8599
12
if (name == "semantic-checks") {
8600
return options.parser.semanticChecks ? "true" : "false";
8601
}
8602
12
if (name == "strict-parsing") {
8603
return options.parser.strictParsing ? "true" : "false";
8604
}
8605
12
if (name == "flatten-ho-chains") {
8606
return options.printer.flattenHOChains ? "true" : "false";
8607
}
8608
12
if (name == "inst-format") {
8609
std::stringstream ss;
8610
ss << options.printer.instFormatMode;
8611
return ss.str();
8612
}
8613
12
if (name == "model-format") {
8614
std::stringstream ss;
8615
ss << options.printer.modelFormatMode;
8616
return ss.str();
8617
}
8618
12
if (name == "print-inst-full") {
8619
return options.printer.printInstFull ? "true" : "false";
8620
}
8621
12
if (name == "print-inst") {
8622
std::stringstream ss;
8623
ss << options.printer.printInstMode;
8624
return ss.str();
8625
}
8626
12
if (name == "proof-eager-checking") {
8627
return options.proof.proofEagerChecking ? "true" : "false";
8628
}
8629
12
if (name == "proof-format-mode") {
8630
std::stringstream ss;
8631
ss << options.proof.proofFormatMode;
8632
return ss.str();
8633
}
8634
12
if (name == "proof-granularity") {
8635
std::stringstream ss;
8636
ss << options.proof.proofGranularityMode;
8637
return ss.str();
8638
}
8639
12
if (name == "proof-pedantic") {
8640
return std::to_string(options.proof.proofPedantic);
8641
}
8642
12
if (name == "proof-print-conclusion") {
8643
return options.proof.proofPrintConclusion ? "true" : "false";
8644
}
8645
12
if (name == "minisat-dump-dimacs") {
8646
return options.prop.minisatDumpDimacs ? "true" : "false";
8647
}
8648
12
if (name == "minisat-elimination") {
8649
return options.prop.minisatUseElim ? "true" : "false";
8650
}
8651
12
if (name == "random-freq" || name == "random-frequency") {
8652
return std::to_string(options.prop.satRandomFreq);
8653
}
8654
12
if (name == "random-seed") {
8655
4
return std::to_string(options.prop.satRandomSeed);
8656
}
8657
8
if (name == "refine-conflicts") {
8658
return options.prop.sat_refine_conflicts ? "true" : "false";
8659
}
8660
8
if (name == "restart-int-base") {
8661
return std::to_string(options.prop.satRestartFirst);
8662
}
8663
8
if (name == "restart-int-inc") {
8664
return std::to_string(options.prop.satRestartInc);
8665
}
8666
8
if (name == "ag-miniscope-quant") {
8667
return options.quantifiers.aggressiveMiniscopeQuant ? "true" : "false";
8668
}
8669
8
if (name == "cegis-sample") {
8670
std::stringstream ss;
8671
ss << options.quantifiers.cegisSample;
8672
return ss.str();
8673
}
8674
8
if (name == "cegqi") {
8675
return options.quantifiers.cegqi ? "true" : "false";
8676
}
8677
8
if (name == "cegqi-all") {
8678
return options.quantifiers.cegqiAll ? "true" : "false";
8679
}
8680
8
if (name == "cegqi-bv") {
8681
return options.quantifiers.cegqiBv ? "true" : "false";
8682
}
8683
8
if (name == "cegqi-bv-concat-inv") {
8684
return options.quantifiers.cegqiBvConcInv ? "true" : "false";
8685
}
8686
8
if (name == "cegqi-bv-ineq") {
8687
std::stringstream ss;
8688
ss << options.quantifiers.cegqiBvIneqMode;
8689
return ss.str();
8690
}
8691
8
if (name == "cegqi-bv-interleave-value") {
8692
return options.quantifiers.cegqiBvInterleaveValue ? "true" : "false";
8693
}
8694
8
if (name == "cegqi-bv-linear") {
8695
return options.quantifiers.cegqiBvLinearize ? "true" : "false";
8696
}
8697
8
if (name == "cegqi-bv-rm-extract") {
8698
return options.quantifiers.cegqiBvRmExtract ? "true" : "false";
8699
}
8700
8
if (name == "cegqi-bv-solve-nl") {
8701
return options.quantifiers.cegqiBvSolveNl ? "true" : "false";
8702
}
8703
8
if (name == "cegqi-full") {
8704
return options.quantifiers.cegqiFullEffort ? "true" : "false";
8705
}
8706
8
if (name == "cegqi-innermost") {
8707
return options.quantifiers.cegqiInnermost ? "true" : "false";
8708
}
8709
8
if (name == "cegqi-midpoint") {
8710
return options.quantifiers.cegqiMidpoint ? "true" : "false";
8711
}
8712
8
if (name == "cegqi-min-bounds") {
8713
return options.quantifiers.cegqiMinBounds ? "true" : "false";
8714
}
8715
8
if (name == "cegqi-model") {
8716
return options.quantifiers.cegqiModel ? "true" : "false";
8717
}
8718
8
if (name == "cegqi-multi-inst") {
8719
return options.quantifiers.cegqiMultiInst ? "true" : "false";
8720
}
8721
8
if (name == "cegqi-nested-qe") {
8722
return options.quantifiers.cegqiNestedQE ? "true" : "false";
8723
}
8724
8
if (name == "cegqi-nopt") {
8725
return options.quantifiers.cegqiNopt ? "true" : "false";
8726
}
8727
8
if (name == "cegqi-repeat-lit") {
8728
return options.quantifiers.cegqiRepeatLit ? "true" : "false";
8729
}
8730
8
if (name == "cegqi-round-up-lia") {
8731
return options.quantifiers.cegqiRoundUpLowerLia ? "true" : "false";
8732
}
8733
8
if (name == "cegqi-sat") {
8734
return options.quantifiers.cegqiSat ? "true" : "false";
8735
}
8736
8
if (name == "cegqi-use-inf-int") {
8737
return options.quantifiers.cegqiUseInfInt ? "true" : "false";
8738
}
8739
8
if (name == "cegqi-use-inf-real") {
8740
return options.quantifiers.cegqiUseInfReal ? "true" : "false";
8741
}
8742
8
if (name == "cond-var-split-agg-quant") {
8743
return options.quantifiers.condVarSplitQuantAgg ? "true" : "false";
8744
}
8745
8
if (name == "cond-var-split-quant") {
8746
return options.quantifiers.condVarSplitQuant ? "true" : "false";
8747
}
8748
8
if (name == "conjecture-filter-active-terms") {
8749
return options.quantifiers.conjectureFilterActiveTerms ? "true" : "false";
8750
}
8751
8
if (name == "conjecture-filter-canonical") {
8752
return options.quantifiers.conjectureFilterCanonical ? "true" : "false";
8753
}
8754
8
if (name == "conjecture-filter-model") {
8755
return options.quantifiers.conjectureFilterModel ? "true" : "false";
8756
}
8757
8
if (name == "conjecture-gen") {
8758
return options.quantifiers.conjectureGen ? "true" : "false";
8759
}
8760
8
if (name == "conjecture-gen-gt-enum") {
8761
return std::to_string(options.quantifiers.conjectureGenGtEnum);
8762
}
8763
8
if (name == "conjecture-gen-max-depth") {
8764
return std::to_string(options.quantifiers.conjectureGenMaxDepth);
8765
}
8766
8
if (name == "conjecture-gen-per-round") {
8767
return std::to_string(options.quantifiers.conjectureGenPerRound);
8768
}
8769
8
if (name == "conjecture-gen-uee-intro") {
8770
return options.quantifiers.conjectureUeeIntro ? "true" : "false";
8771
}
8772
8
if (name == "conjecture-no-filter") {
8773
return options.quantifiers.conjectureNoFilter ? "true" : "false";
8774
}
8775
8
if (name == "dt-stc-ind") {
8776
return options.quantifiers.dtStcInduction ? "true" : "false";
8777
}
8778
8
if (name == "dt-var-exp-quant") {
8779
return options.quantifiers.dtVarExpandQuant ? "true" : "false";
8780
}
8781
8
if (name == "e-matching") {
8782
return options.quantifiers.eMatching ? "true" : "false";
8783
}
8784
8
if (name == "elim-taut-quant") {
8785
return options.quantifiers.elimTautQuant ? "true" : "false";
8786
}
8787
8
if (name == "ext-rewrite-quant") {
8788
return options.quantifiers.extRewriteQuant ? "true" : "false";
8789
}
8790
8
if (name == "finite-model-find") {
8791
return options.quantifiers.finiteModelFind ? "true" : "false";
8792
}
8793
8
if (name == "fmf-bound") {
8794
return options.quantifiers.fmfBound ? "true" : "false";
8795
}
8796
8
if (name == "fmf-bound-int") {
8797
return options.quantifiers.fmfBoundInt ? "true" : "false";
8798
}
8799
8
if (name == "fmf-bound-lazy") {
8800
return options.quantifiers.fmfBoundLazy ? "true" : "false";
8801
}
8802
8
if (name == "fmf-fmc-simple") {
8803
return options.quantifiers.fmfFmcSimple ? "true" : "false";
8804
}
8805
8
if (name == "fmf-fresh-dc") {
8806
return options.quantifiers.fmfFreshDistConst ? "true" : "false";
8807
}
8808
8
if (name == "fmf-fun") {
8809
return options.quantifiers.fmfFunWellDefined ? "true" : "false";
8810
}
8811
8
if (name == "fmf-fun-rlv") {
8812
return options.quantifiers.fmfFunWellDefinedRelevant ? "true" : "false";
8813
}
8814
8
if (name == "fmf-inst-engine") {
8815
return options.quantifiers.fmfInstEngine ? "true" : "false";
8816
}
8817
8
if (name == "fmf-type-completion-thresh") {
8818
return std::to_string(options.quantifiers.fmfTypeCompletionThresh);
8819
}
8820
8
if (name == "fs-interleave") {
8821
return options.quantifiers.fullSaturateInterleave ? "true" : "false";
8822
}
8823
8
if (name == "fs-stratify") {
8824
return options.quantifiers.fullSaturateStratify ? "true" : "false";
8825
}
8826
8
if (name == "fs-sum") {
8827
return options.quantifiers.fullSaturateSum ? "true" : "false";
8828
}
8829
8
if (name == "full-saturate-quant") {
8830
return options.quantifiers.fullSaturateQuant ? "true" : "false";
8831
}
8832
8
if (name == "full-saturate-quant-limit") {
8833
return std::to_string(options.quantifiers.fullSaturateLimit);
8834
}
8835
8
if (name == "full-saturate-quant-rd") {
8836
return options.quantifiers.fullSaturateQuantRd ? "true" : "false";
8837
}
8838
8
if (name == "global-negate") {
8839
return options.quantifiers.globalNegate ? "true" : "false";
8840
}
8841
8
if (name == "ho-elim") {
8842
return options.quantifiers.hoElim ? "true" : "false";
8843
}
8844
8
if (name == "ho-elim-store-ax") {
8845
return options.quantifiers.hoElimStoreAx ? "true" : "false";
8846
}
8847
8
if (name == "ho-matching") {
8848
return options.quantifiers.hoMatching ? "true" : "false";
8849
}
8850
8
if (name == "ho-matching-var-priority") {
8851
return options.quantifiers.hoMatchingVarArgPriority ? "true" : "false";
8852
}
8853
8
if (name == "ho-merge-term-db") {
8854
return options.quantifiers.hoMergeTermDb ? "true" : "false";
8855
}
8856
8
if (name == "increment-triggers") {
8857
return options.quantifiers.incrementTriggers ? "true" : "false";
8858
}
8859
8
if (name == "inst-level-input-only") {
8860
return options.quantifiers.instLevelInputOnly ? "true" : "false";
8861
}
8862
8
if (name == "inst-max-level") {
8863
return std::to_string(options.quantifiers.instMaxLevel);
8864
}
8865
8
if (name == "inst-max-rounds") {
8866
return std::to_string(options.quantifiers.instMaxRounds);
8867
}
8868
8
if (name == "inst-no-entail") {
8869
return options.quantifiers.instNoEntail ? "true" : "false";
8870
}
8871
8
if (name == "inst-when-phase") {
8872
return std::to_string(options.quantifiers.instWhenPhase);
8873
}
8874
8
if (name == "inst-when-strict-interleave") {
8875
return options.quantifiers.instWhenStrictInterleave ? "true" : "false";
8876
}
8877
8
if (name == "inst-when-tc-first") {
8878
return options.quantifiers.instWhenTcFirst ? "true" : "false";
8879
}
8880
8
if (name == "inst-when") {
8881
std::stringstream ss;
8882
ss << options.quantifiers.instWhenMode;
8883
return ss.str();
8884
}
8885
8
if (name == "int-wf-ind") {
8886
return options.quantifiers.intWfInduction ? "true" : "false";
8887
}
8888
8
if (name == "ite-dtt-split-quant") {
8889
return options.quantifiers.iteDtTesterSplitQuant ? "true" : "false";
8890
}
8891
8
if (name == "ite-lift-quant") {
8892
std::stringstream ss;
8893
ss << options.quantifiers.iteLiftQuant;
8894
return ss.str();
8895
}
8896
8
if (name == "literal-matching") {
8897
std::stringstream ss;
8898
ss << options.quantifiers.literalMatchMode;
8899
return ss.str();
8900
}
8901
8
if (name == "macros-quant") {
8902
return options.quantifiers.macrosQuant ? "true" : "false";
8903
}
8904
8
if (name == "macros-quant-mode") {
8905
std::stringstream ss;
8906
ss << options.quantifiers.macrosQuantMode;
8907
return ss.str();
8908
}
8909
8
if (name == "mbqi-interleave") {
8910
return options.quantifiers.mbqiInterleave ? "true" : "false";
8911
}
8912
8
if (name == "mbqi-one-inst-per-round") {
8913
return options.quantifiers.fmfOneInstPerRound ? "true" : "false";
8914
}
8915
8
if (name == "mbqi") {
8916
std::stringstream ss;
8917
ss << options.quantifiers.mbqiMode;
8918
return ss.str();
8919
}
8920
8
if (name == "miniscope-quant") {
8921
return options.quantifiers.miniscopeQuant ? "true" : "false";
8922
}
8923
8
if (name == "miniscope-quant-fv") {
8924
return options.quantifiers.miniscopeQuantFreeVar ? "true" : "false";
8925
}
8926
8
if (name == "multi-trigger-cache") {
8927
return options.quantifiers.multiTriggerCache ? "true" : "false";
8928
}
8929
8
if (name == "multi-trigger-linear") {
8930
return options.quantifiers.multiTriggerLinear ? "true" : "false";
8931
}
8932
8
if (name == "multi-trigger-priority") {
8933
return options.quantifiers.multiTriggerPriority ? "true" : "false";
8934
}
8935
8
if (name == "multi-trigger-when-single") {
8936
return options.quantifiers.multiTriggerWhenSingle ? "true" : "false";
8937
}
8938
8
if (name == "partial-triggers") {
8939
return options.quantifiers.partialTriggers ? "true" : "false";
8940
}
8941
8
if (name == "pool-inst") {
8942
return options.quantifiers.poolInst ? "true" : "false";
8943
}
8944
8
if (name == "pre-skolem-quant") {
8945
return options.quantifiers.preSkolemQuant ? "true" : "false";
8946
}
8947
8
if (name == "pre-skolem-quant-agg") {
8948
return options.quantifiers.preSkolemQuantAgg ? "true" : "false";
8949
}
8950
8
if (name == "pre-skolem-quant-nested") {
8951
return options.quantifiers.preSkolemQuantNested ? "true" : "false";
8952
}
8953
8
if (name == "prenex-quant-user") {
8954
return options.quantifiers.prenexQuantUser ? "true" : "false";
8955
}
8956
8
if (name == "prenex-quant") {
8957
std::stringstream ss;
8958
ss << options.quantifiers.prenexQuant;
8959
return ss.str();
8960
}
8961
8
if (name == "purify-triggers") {
8962
return options.quantifiers.purifyTriggers ? "true" : "false";
8963
}
8964
8
if (name == "qcf-all-conflict") {
8965
return options.quantifiers.qcfAllConflict ? "true" : "false";
8966
}
8967
8
if (name == "qcf-eager-check-rd") {
8968
return options.quantifiers.qcfEagerCheckRd ? "true" : "false";
8969
}
8970
8
if (name == "qcf-eager-test") {
8971
return options.quantifiers.qcfEagerTest ? "true" : "false";
8972
}
8973
8
if (name == "qcf-nested-conflict") {
8974
return options.quantifiers.qcfNestedConflict ? "true" : "false";
8975
}
8976
8
if (name == "qcf-skip-rd") {
8977
return options.quantifiers.qcfSkipRd ? "true" : "false";
8978
}
8979
8
if (name == "qcf-tconstraint") {
8980
return options.quantifiers.qcfTConstraint ? "true" : "false";
8981
}
8982
8
if (name == "qcf-vo-exp") {
8983
return options.quantifiers.qcfVoExp ? "true" : "false";
8984
}
8985
8
if (name == "quant-alpha-equiv") {
8986
return options.quantifiers.quantAlphaEquiv ? "true" : "false";
8987
}
8988
8
if (name == "quant-cf") {
8989
return options.quantifiers.quantConflictFind ? "true" : "false";
8990
}
8991
8
if (name == "quant-cf-mode") {
8992
std::stringstream ss;
8993
ss << options.quantifiers.qcfMode;
8994
return ss.str();
8995
}
8996
8
if (name == "quant-cf-when") {
8997
std::stringstream ss;
8998
ss << options.quantifiers.qcfWhenMode;
8999
return ss.str();
9000
}
9001
8
if (name == "quant-dsplit-mode") {
9002
std::stringstream ss;
9003
ss << options.quantifiers.quantDynamicSplit;
9004
return ss.str();
9005
}
9006
8
if (name == "quant-fun-wd") {
9007
return options.quantifiers.quantFunWellDefined ? "true" : "false";
9008
}
9009
8
if (name == "quant-ind") {
9010
return options.quantifiers.quantInduction ? "true" : "false";
9011
}
9012
8
if (name == "quant-rep-mode") {
9013
std::stringstream ss;
9014
ss << options.quantifiers.quantRepMode;
9015
return ss.str();
9016
}
9017
8
if (name == "quant-split") {
9018
return options.quantifiers.quantSplit ? "true" : "false";
9019
}
9020
8
if (name == "register-quant-body-terms") {
9021
return options.quantifiers.registerQuantBodyTerms ? "true" : "false";
9022
}
9023
8
if (name == "relational-triggers") {
9024
return options.quantifiers.relationalTriggers ? "true" : "false";
9025
}
9026
8
if (name == "relevant-triggers") {
9027
return options.quantifiers.relevantTriggers ? "true" : "false";
9028
}
9029
8
if (name == "strict-triggers") {
9030
return options.quantifiers.strictTriggers ? "true" : "false";
9031
}
9032
8
if (name == "sygus") {
9033
return options.quantifiers.sygus ? "true" : "false";
9034
}
9035
8
if (name == "sygus-active-gen-cfactor") {
9036
return std::to_string(options.quantifiers.sygusActiveGenEnumConsts);
9037
}
9038
8
if (name == "sygus-active-gen") {
9039
std::stringstream ss;
9040
ss << options.quantifiers.sygusActiveGenMode;
9041
return ss.str();
9042
}
9043
8
if (name == "sygus-add-const-grammar") {
9044
return options.quantifiers.sygusAddConstGrammar ? "true" : "false";
9045
}
9046
8
if (name == "sygus-arg-relevant") {
9047
return options.quantifiers.sygusArgRelevant ? "true" : "false";
9048
}
9049
8
if (name == "sygus-auto-unfold") {
9050
return options.quantifiers.sygusInvAutoUnfold ? "true" : "false";
9051
}
9052
8
if (name == "sygus-bool-ite-return-const") {
9053
return options.quantifiers.sygusBoolIteReturnConst ? "true" : "false";
9054
}
9055
8
if (name == "sygus-core-connective") {
9056
return options.quantifiers.sygusCoreConnective ? "true" : "false";
9057
}
9058
8
if (name == "sygus-crepair-abort") {
9059
return options.quantifiers.sygusConstRepairAbort ? "true" : "false";
9060
}
9061
8
if (name == "sygus-eval-opt") {
9062
return options.quantifiers.sygusEvalOpt ? "true" : "false";
9063
}
9064
8
if (name == "sygus-eval-unfold") {
9065
return options.quantifiers.sygusEvalUnfold ? "true" : "false";
9066
}
9067
8
if (name == "sygus-eval-unfold-bool") {
9068
return options.quantifiers.sygusEvalUnfoldBool ? "true" : "false";
9069
}
9070
8
if (name == "sygus-expr-miner-check-timeout") {
9071
return std::to_string(options.quantifiers.sygusExprMinerCheckTimeout);
9072
}
9073
8
if (name == "sygus-ext-rew") {
9074
return options.quantifiers.sygusExtRew ? "true" : "false";
9075
}
9076
8
if (name == "sygus-filter-sol-rev") {
9077
return options.quantifiers.sygusFilterSolRevSubsume ? "true" : "false";
9078
}
9079
8
if (name == "sygus-filter-sol") {
9080
std::stringstream ss;
9081
ss << options.quantifiers.sygusFilterSolMode;
9082
return ss.str();
9083
}
9084
8
if (name == "sygus-grammar-cons") {
9085
std::stringstream ss;
9086
ss << options.quantifiers.sygusGrammarConsMode;
9087
return ss.str();
9088
}
9089
8
if (name == "sygus-grammar-norm") {
9090
return options.quantifiers.sygusGrammarNorm ? "true" : "false";
9091
}
9092
8
if (name == "sygus-inference") {
9093
return options.quantifiers.sygusInference ? "true" : "false";
9094
}
9095
8
if (name == "sygus-inst") {
9096
return options.quantifiers.sygusInst ? "true" : "false";
9097
}
9098
8
if (name == "sygus-inst-mode") {
9099
std::stringstream ss;
9100
ss << options.quantifiers.sygusInstMode;
9101
return ss.str();
9102
}
9103
8
if (name == "sygus-inst-scope") {
9104
std::stringstream ss;
9105
ss << options.quantifiers.sygusInstScope;
9106
return ss.str();
9107
}
9108
8
if (name == "sygus-inst-term-sel") {
9109
std::stringstream ss;
9110
ss << options.quantifiers.sygusInstTermSel;
9111
return ss.str();
9112
}
9113
8
if (name == "sygus-inv-templ-when-sg") {
9114
return options.quantifiers.sygusInvTemplWhenSyntax ? "true" : "false";
9115
}
9116
8
if (name == "sygus-inv-templ") {
9117
std::stringstream ss;
9118
ss << options.quantifiers.sygusInvTemplMode;
9119
return ss.str();
9120
}
9121
8
if (name == "sygus-min-grammar") {
9122
return options.quantifiers.sygusMinGrammar ? "true" : "false";
9123
}
9124
8
if (name == "sygus-pbe") {
9125
return options.quantifiers.sygusUnifPbe ? "true" : "false";
9126
}
9127
8
if (name == "sygus-pbe-multi-fair") {
9128
return options.quantifiers.sygusPbeMultiFair ? "true" : "false";
9129
}
9130
8
if (name == "sygus-pbe-multi-fair-diff") {
9131
return std::to_string(options.quantifiers.sygusPbeMultiFairDiff);
9132
}
9133
8
if (name == "sygus-qe-preproc") {
9134
return options.quantifiers.sygusQePreproc ? "true" : "false";
9135
}
9136
8
if (name == "sygus-query-gen") {
9137
return options.quantifiers.sygusQueryGen ? "true" : "false";
9138
}
9139
8
if (name == "sygus-query-gen-check") {
9140
return options.quantifiers.sygusQueryGenCheck ? "true" : "false";
9141
}
9142
8
if (name == "sygus-query-gen-dump-files") {
9143
std::stringstream ss;
9144
ss << options.quantifiers.sygusQueryGenDumpFiles;
9145
return ss.str();
9146
}
9147
8
if (name == "sygus-query-gen-thresh") {
9148
return std::to_string(options.quantifiers.sygusQueryGenThresh);
9149
}
9150
8
if (name == "sygus-rec-fun") {
9151
return options.quantifiers.sygusRecFun ? "true" : "false";
9152
}
9153
8
if (name == "sygus-rec-fun-eval-limit") {
9154
return std::to_string(options.quantifiers.sygusRecFunEvalLimit);
9155
}
9156
8
if (name == "sygus-repair-const") {
9157
return options.quantifiers.sygusRepairConst ? "true" : "false";
9158
}
9159
8
if (name == "sygus-repair-const-timeout") {
9160
return std::to_string(options.quantifiers.sygusRepairConstTimeout);
9161
}
9162
8
if (name == "sygus-rr") {
9163
return options.quantifiers.sygusRew ? "true" : "false";
9164
}
9165
8
if (name == "sygus-rr-synth") {
9166
return options.quantifiers.sygusRewSynth ? "true" : "false";
9167
}
9168
8
if (name == "sygus-rr-synth-accel") {
9169
return options.quantifiers.sygusRewSynthAccel ? "true" : "false";
9170
}
9171
8
if (name == "sygus-rr-synth-check") {
9172
return options.quantifiers.sygusRewSynthCheck ? "true" : "false";
9173
}
9174
8
if (name == "sygus-rr-synth-filter-cong") {
9175
return options.quantifiers.sygusRewSynthFilterCong ? "true" : "false";
9176
}
9177
8
if (name == "sygus-rr-synth-filter-match") {
9178
return options.quantifiers.sygusRewSynthFilterMatch ? "true" : "false";
9179
}
9180
8
if (name == "sygus-rr-synth-filter-nl") {
9181
return options.quantifiers.sygusRewSynthFilterNonLinear ? "true" : "false";
9182
}
9183
8
if (name == "sygus-rr-synth-filter-order") {
9184
return options.quantifiers.sygusRewSynthFilterOrder ? "true" : "false";
9185
}
9186
8
if (name == "sygus-rr-synth-input") {
9187
return options.quantifiers.sygusRewSynthInput ? "true" : "false";
9188
}
9189
8
if (name == "sygus-rr-synth-input-nvars") {
9190
return std::to_string(options.quantifiers.sygusRewSynthInputNVars);
9191
}
9192
8
if (name == "sygus-rr-synth-input-use-bool") {
9193
return options.quantifiers.sygusRewSynthInputUseBool ? "true" : "false";
9194
}
9195
8
if (name == "sygus-rr-synth-rec") {
9196
return options.quantifiers.sygusRewSynthRec ? "true" : "false";
9197
}
9198
8
if (name == "sygus-rr-verify") {
9199
return options.quantifiers.sygusRewVerify ? "true" : "false";
9200
}
9201
8
if (name == "sygus-rr-verify-abort") {
9202
return options.quantifiers.sygusRewVerifyAbort ? "true" : "false";
9203
}
9204
8
if (name == "sygus-sample-fp-uniform") {
9205
return options.quantifiers.sygusSampleFpUniform ? "true" : "false";
9206
}
9207
8
if (name == "sygus-sample-grammar") {
9208
return options.quantifiers.sygusSampleGrammar ? "true" : "false";
9209
}
9210
8
if (name == "sygus-samples") {
9211
return std::to_string(options.quantifiers.sygusSamples);
9212
}
9213
8
if (name == "sygus-si-abort") {
9214
return options.quantifiers.cegqiSingleInvAbort ? "true" : "false";
9215
}
9216
8
if (name == "sygus-si-partial") {
9217
return options.quantifiers.cegqiSingleInvPartial ? "true" : "false";
9218
}
9219
8
if (name == "sygus-si-rcons-limit") {
9220
return std::to_string(options.quantifiers.cegqiSingleInvReconstructLimit);
9221
}
9222
8
if (name == "sygus-si-rcons") {
9223
std::stringstream ss;
9224
ss << options.quantifiers.cegqiSingleInvReconstruct;
9225
return ss.str();
9226
}
9227
8
if (name == "sygus-si-reconstruct-const") {
9228
return options.quantifiers.cegqiSingleInvReconstructConst ? "true" : "false";
9229
}
9230
8
if (name == "sygus-si") {
9231
std::stringstream ss;
9232
ss << options.quantifiers.cegqiSingleInvMode;
9233
return ss.str();
9234
}
9235
8
if (name == "sygus-stream") {
9236
return options.quantifiers.sygusStream ? "true" : "false";
9237
}
9238
8
if (name == "sygus-templ-embed-grammar") {
9239
return options.quantifiers.sygusTemplEmbedGrammar ? "true" : "false";
9240
}
9241
8
if (name == "sygus-unif-cond-independent-no-repeat-sol") {
9242
return options.quantifiers.sygusUnifCondIndNoRepeatSol ? "true" : "false";
9243
}
9244
8
if (name == "sygus-unif-pi") {
9245
std::stringstream ss;
9246
ss << options.quantifiers.sygusUnifPi;
9247
return ss.str();
9248
}
9249
8
if (name == "sygus-unif-shuffle-cond") {
9250
return options.quantifiers.sygusUnifShuffleCond ? "true" : "false";
9251
}
9252
8
if (name == "sygus-verify-inst-max-rounds") {
9253
return std::to_string(options.quantifiers.sygusVerifyInstMaxRounds);
9254
}
9255
8
if (name == "term-db-cd") {
9256
return options.quantifiers.termDbCd ? "true" : "false";
9257
}
9258
8
if (name == "term-db-mode") {
9259
std::stringstream ss;
9260
ss << options.quantifiers.termDbMode;
9261
return ss.str();
9262
}
9263
8
if (name == "trigger-active-sel") {
9264
std::stringstream ss;
9265
ss << options.quantifiers.triggerActiveSelMode;
9266
return ss.str();
9267
}
9268
8
if (name == "trigger-sel") {
9269
std::stringstream ss;
9270
ss << options.quantifiers.triggerSelMode;
9271
return ss.str();
9272
}
9273
8
if (name == "user-pat") {
9274
std::stringstream ss;
9275
ss << options.quantifiers.userPatternsQuant;
9276
return ss.str();
9277
}
9278
8
if (name == "var-elim-quant") {
9279
return options.quantifiers.varElimQuant ? "true" : "false";
9280
}
9281
8
if (name == "var-ineq-elim-quant") {
9282
return options.quantifiers.varIneqElimQuant ? "true" : "false";
9283
}
9284
8
if (name == "sep-check-neg") {
9285
return options.sep.sepCheckNeg ? "true" : "false";
9286
}
9287
8
if (name == "sep-child-refine") {
9288
return options.sep.sepChildRefine ? "true" : "false";
9289
}
9290
8
if (name == "sep-deq-c") {
9291
return options.sep.sepDisequalC ? "true" : "false";
9292
}
9293
8
if (name == "sep-exp") {
9294
return options.sep.sepExp ? "true" : "false";
9295
}
9296
8
if (name == "sep-min-refine") {
9297
return options.sep.sepMinimalRefine ? "true" : "false";
9298
}
9299
8
if (name == "sep-pre-skolem-emp") {
9300
return options.sep.sepPreSkolemEmp ? "true" : "false";
9301
}
9302
8
if (name == "sets-ext") {
9303
return options.sets.setsExt ? "true" : "false";
9304
}
9305
8
if (name == "sets-infer-as-lemmas") {
9306
return options.sets.setsInferAsLemmas ? "true" : "false";
9307
}
9308
8
if (name == "sets-proxy-lemmas") {
9309
return options.sets.setsProxyLemmas ? "true" : "false";
9310
}
9311
8
if (name == "abstract-values") {
9312
return options.smt.abstractValues ? "true" : "false";
9313
}
9314
8
if (name == "ackermann") {
9315
return options.smt.ackermann ? "true" : "false";
9316
}
9317
8
if (name == "block-models") {
9318
std::stringstream ss;
9319
ss << options.smt.blockModelsMode;
9320
return ss.str();
9321
}
9322
8
if (name == "bvand-integer-granularity") {
9323
return std::to_string(options.smt.BVAndIntegerGranularity);
9324
}
9325
8
if (name == "check-abducts") {
9326
return options.smt.checkAbducts ? "true" : "false";
9327
}
9328
8
if (name == "check-interpols") {
9329
return options.smt.checkInterpols ? "true" : "false";
9330
}
9331
8
if (name == "check-models") {
9332
2
return options.smt.checkModels ? "true" : "false";
9333
}
9334
6
if (name == "check-proofs") {
9335
return options.smt.checkProofs ? "true" : "false";
9336
}
9337
6
if (name == "check-synth-sol") {
9338
return options.smt.checkSynthSol ? "true" : "false";
9339
}
9340
6
if (name == "check-unsat-cores") {
9341
return options.smt.checkUnsatCores ? "true" : "false";
9342
}
9343
6
if (name == "debug-check-models") {
9344
return options.smt.debugCheckModels ? "true" : "false";
9345
}
9346
6
if (name == "dump-to") {
9347
std::stringstream ss;
9348
ss << options.smt.dumpToFileName;
9349
return ss.str();
9350
}
9351
6
if (name == "dump") {
9352
return options.smt.dumpModeString;
9353
}
9354
6
if (name == "early-ite-removal") {
9355
return options.smt.earlyIteRemoval ? "true" : "false";
9356
}
9357
6
if (name == "expand-definitions") {
9358
return options.smt.expandDefinitions ? "true" : "false";
9359
}
9360
6
if (name == "ext-rew-prep") {
9361
return options.smt.extRewPrep ? "true" : "false";
9362
}
9363
6
if (name == "ext-rew-prep-agg") {
9364
return options.smt.extRewPrepAgg ? "true" : "false";
9365
}
9366
6
if (name == "foreign-theory-rewrite") {
9367
return options.smt.foreignTheoryRewrite ? "true" : "false";
9368
}
9369
6
if (name == "iand-mode") {
9370
std::stringstream ss;
9371
ss << options.smt.iandMode;
9372
return ss.str();
9373
}
9374
6
if (name == "interactive-mode") {
9375
return options.smt.interactiveMode ? "true" : "false";
9376
}
9377
6
if (name == "ite-simp") {
9378
return options.smt.doITESimp ? "true" : "false";
9379
}
9380
6
if (name == "learned-rewrite") {
9381
return options.smt.learnedRewrite ? "true" : "false";
9382
}
9383
6
if (name == "minimal-unsat-cores") {
9384
return options.smt.minimalUnsatCores ? "true" : "false";
9385
}
9386
6
if (name == "model-cores") {
9387
std::stringstream ss;
9388
ss << options.smt.modelCoresMode;
9389
return ss.str();
9390
}
9391
6
if (name == "model-u-print" || name == "model-uninterp-print") {
9392
std::stringstream ss;
9393
ss << options.smt.modelUninterpPrint;
9394
return ss.str();
9395
}
9396
6
if (name == "model-witness-value") {
9397
return options.smt.modelWitnessValue ? "true" : "false";
9398
}
9399
6
if (name == "on-repeat-ite-simp") {
9400
return options.smt.doITESimpOnRepeat ? "true" : "false";
9401
}
9402
6
if (name == "produce-abducts") {
9403
return options.smt.produceAbducts ? "true" : "false";
9404
}
9405
6
if (name == "produce-assertions") {
9406
return options.smt.produceAssertions ? "true" : "false";
9407
}
9408
6
if (name == "produce-assignments") {
9409
return options.smt.produceAssignments ? "true" : "false";
9410
}
9411
6
if (name == "produce-interpols") {
9412
std::stringstream ss;
9413
ss << options.smt.produceInterpols;
9414
return ss.str();
9415
}
9416
6
if (name == "produce-models") {
9417
3
return options.smt.produceModels ? "true" : "false";
9418
}
9419
3
if (name == "produce-proofs") {
9420
return options.smt.produceProofs ? "true" : "false";
9421
}
9422
3
if (name == "produce-unsat-assumptions") {
9423
return options.smt.unsatAssumptions ? "true" : "false";
9424
}
9425
3
if (name == "produce-unsat-cores") {
9426
return options.smt.unsatCores ? "true" : "false";
9427
}
9428
3
if (name == "repeat-simp") {
9429
return options.smt.repeatSimp ? "true" : "false";
9430
}
9431
3
if (name == "simp-ite-compress") {
9432
return options.smt.compressItes ? "true" : "false";
9433
}
9434
3
if (name == "simp-ite-hunt-zombies") {
9435
return std::to_string(options.smt.zombieHuntThreshold);
9436
}
9437
3
if (name == "simp-with-care") {
9438
return options.smt.simplifyWithCareEnabled ? "true" : "false";
9439
}
9440
3
if (name == "simplification" || name == "simplification-mode") {
9441
2
std::stringstream ss;
9442
1
ss << options.smt.simplificationMode;
9443
1
return ss.str();
9444
}
9445
2
if (name == "solve-bv-as-int") {
9446
std::stringstream ss;
9447
ss << options.smt.solveBVAsInt;
9448
return ss.str();
9449
}
9450
2
if (name == "solve-int-as-bv") {
9451
return std::to_string(options.smt.solveIntAsBV);
9452
}
9453
2
if (name == "solve-real-as-int") {
9454
return options.smt.solveRealAsInt ? "true" : "false";
9455
}
9456
2
if (name == "sort-inference") {
9457
return options.smt.sortInference ? "true" : "false";
9458
}
9459
2
if (name == "static-learning") {
9460
return options.smt.doStaticLearning ? "true" : "false";
9461
}
9462
2
if (name == "sygus-out") {
9463
std::stringstream ss;
9464
ss << options.smt.sygusOut;
9465
return ss.str();
9466
}
9467
2
if (name == "sygus-print-callbacks") {
9468
return options.smt.sygusPrintCallbacks ? "true" : "false";
9469
}
9470
2
if (name == "unconstrained-simp") {
9471
return options.smt.unconstrainedSimp ? "true" : "false";
9472
}
9473
2
if (name == "unsat-cores-mode") {
9474
std::stringstream ss;
9475
ss << options.smt.unsatCoresMode;
9476
return ss.str();
9477
}
9478
2
if (name == "re-elim") {
9479
return options.strings.regExpElim ? "true" : "false";
9480
}
9481
2
if (name == "re-elim-agg") {
9482
return options.strings.regExpElimAgg ? "true" : "false";
9483
}
9484
2
if (name == "re-inter-mode") {
9485
std::stringstream ss;
9486
ss << options.strings.stringRegExpInterMode;
9487
return ss.str();
9488
}
9489
2
if (name == "strings-check-entail-len") {
9490
return options.strings.stringCheckEntailLen ? "true" : "false";
9491
}
9492
2
if (name == "strings-eager") {
9493
return options.strings.stringEager ? "true" : "false";
9494
}
9495
2
if (name == "strings-eager-eval") {
9496
return options.strings.stringEagerEval ? "true" : "false";
9497
}
9498
2
if (name == "strings-eager-len") {
9499
return options.strings.stringEagerLen ? "true" : "false";
9500
}
9501
2
if (name == "strings-exp") {
9502
return options.strings.stringExp ? "true" : "false";
9503
}
9504
2
if (name == "strings-ff") {
9505
return options.strings.stringFlatForms ? "true" : "false";
9506
}
9507
2
if (name == "strings-fmf") {
9508
return options.strings.stringFMF ? "true" : "false";
9509
}
9510
2
if (name == "strings-guess-model") {
9511
return options.strings.stringGuessModel ? "true" : "false";
9512
}
9513
2
if (name == "strings-infer-as-lemmas") {
9514
return options.strings.stringInferAsLemmas ? "true" : "false";
9515
}
9516
2
if (name == "strings-infer-sym") {
9517
return options.strings.stringInferSym ? "true" : "false";
9518
}
9519
2
if (name == "strings-lazy-pp") {
9520
return options.strings.stringLazyPreproc ? "true" : "false";
9521
}
9522
2
if (name == "strings-len-norm") {
9523
return options.strings.stringLenNorm ? "true" : "false";
9524
}
9525
2
if (name == "strings-lprop-csp") {
9526
return options.strings.stringLenPropCsp ? "true" : "false";
9527
}
9528
2
if (name == "strings-min-prefix-explain") {
9529
return options.strings.stringMinPrefixExplain ? "true" : "false";
9530
}
9531
2
if (name == "strings-process-loop-mode") {
9532
std::stringstream ss;
9533
ss << options.strings.stringProcessLoopMode;
9534
return ss.str();
9535
}
9536
2
if (name == "strings-rexplain-lemmas") {
9537
return options.strings.stringRExplainLemmas ? "true" : "false";
9538
}
9539
2
if (name == "strings-unified-vspt") {
9540
return options.strings.stringUnifiedVSpt ? "true" : "false";
9541
}
9542
2
if (name == "assign-function-values") {
9543
return options.theory.assignFunctionValues ? "true" : "false";
9544
}
9545
2
if (name == "condense-function-values") {
9546
return options.theory.condenseFunctionValues ? "true" : "false";
9547
}
9548
2
if (name == "ee-mode") {
9549
std::stringstream ss;
9550
ss << options.theory.eeMode;
9551
return ss.str();
9552
}
9553
2
if (name == "relevance-filter") {
9554
return options.theory.relevanceFilter ? "true" : "false";
9555
}
9556
2
if (name == "tc-mode") {
9557
std::stringstream ss;
9558
ss << options.theory.tcMode;
9559
return ss.str();
9560
}
9561
2
if (name == "theoryof-mode") {
9562
std::stringstream ss;
9563
ss << options.theory.theoryOfMode;
9564
return ss.str();
9565
}
9566
2
if (name == "symmetry-breaker" || name == "uf-symmetry-breaker") {
9567
return options.uf.ufSymmetryBreaker ? "true" : "false";
9568
}
9569
2
if (name == "uf-ho") {
9570
return options.uf.ufHo ? "true" : "false";
9571
}
9572
2
if (name == "uf-ho-ext") {
9573
return options.uf.ufHoExt ? "true" : "false";
9574
}
9575
2
if (name == "uf-ss-abort-card") {
9576
return std::to_string(options.uf.ufssAbortCardinality);
9577
}
9578
2
if (name == "uf-ss-fair") {
9579
return options.uf.ufssFairness ? "true" : "false";
9580
}
9581
2
if (name == "uf-ss-fair-monotone") {
9582
return options.uf.ufssFairnessMonotone ? "true" : "false";
9583
}
9584
2
if (name == "uf-ss-totality-limited") {
9585
return std::to_string(options.uf.ufssTotalityLimited);
9586
}
9587
2
if (name == "uf-ss-totality-sym-break") {
9588
return options.uf.ufssTotalitySymBreak ? "true" : "false";
9589
}
9590
2
if (name == "uf-ss") {
9591
std::stringstream ss;
9592
ss << options.uf.ufssMode;
9593
return ss.str();
9594
}
9595
9596
2
  throw UnrecognizedOptionException(name);
9597
}
9598
9599
9570
void setInternal(Options& opts, const std::string& name,
9600
                                const std::string& optionarg)
9601
                                {
9602
9570
  if (name == "approx-branch-depth") {
9603
    assign_arith_maxApproxDepth(opts, name, optionarg);
9604
    return;
9605
  }
9606
9570
  if (name == "arith-brab") {
9607
    assign_arith_brabTest(opts, name, optionarg == "true");
9608
    return;
9609
  }
9610
9570
  if (name == "arith-cong-man") {
9611
    assign_arith_arithCongMan(opts, name, optionarg == "true");
9612
    return;
9613
  }
9614
9570
  if (name == "arith-eq-solver") {
9615
    assign_arith_arithEqSolver(opts, name, optionarg == "true");
9616
    return;
9617
  }
9618
9570
  if (name == "arith-no-partial-fun") {
9619
3
    assign_arith_arithNoPartialFun(opts, name, optionarg == "true");
9620
3
    return;
9621
  }
9622
9567
  if (name == "arith-prop-clauses") {
9623
    assign_arith_arithPropAsLemmaLength(opts, name, optionarg);
9624
    return;
9625
  }
9626
9567
  if (name == "arith-prop") {
9627
    assign_arith_arithPropagationMode(opts, name, optionarg);
9628
    return;
9629
  }
9630
9567
  if (name == "arith-rewrite-equalities") {
9631
5
    assign_arith_arithRewriteEq(opts, name, optionarg == "true");
9632
5
    return;
9633
  }
9634
9562
  if (name == "collect-pivot-stats") {
9635
    assign_arith_collectPivots(opts, name, optionarg == "true");
9636
    return;
9637
  }
9638
9562
  if (name == "cut-all-bounded") {
9639
    assign_arith_doCutAllBounded(opts, name, optionarg == "true");
9640
    return;
9641
  }
9642
9562
  if (name == "dio-decomps") {
9643
    assign_arith_exportDioDecompositions(opts, name, optionarg == "true");
9644
    return;
9645
  }
9646
9562
  if (name == "dio-repeat") {
9647
    assign_arith_dioRepeat(opts, name, optionarg == "true");
9648
    return;
9649
  }
9650
9562
  if (name == "dio-solver") {
9651
    assign_arith_arithDioSolver(opts, name, optionarg == "true");
9652
    return;
9653
  }
9654
9562
  if (name == "dio-turns") {
9655
    assign_arith_dioSolverTurns(opts, name, optionarg);
9656
    return;
9657
  }
9658
9562
  if (name == "error-selection-rule") {
9659
    assign_arith_arithErrorSelectionRule(opts, name, optionarg);
9660
    return;
9661
  }
9662
9562
  if (name == "fc-penalties") {
9663
    assign_arith_havePenalties(opts, name, optionarg == "true");
9664
    return;
9665
  }
9666
9562
  if (name == "heuristic-pivots") {
9667
    assign_arith_arithHeuristicPivots(opts, name, optionarg);
9668
    return;
9669
  }
9670
9562
  if (name == "lemmas-on-replay-failure") {
9671
    assign_arith_replayFailureLemma(opts, name, optionarg == "true");
9672
    return;
9673
  }
9674
9562
  if (name == "maxCutsInContext") {
9675
    assign_arith_maxCutsInContext(opts, name, optionarg);
9676
    return;
9677
  }
9678
9562
  if (name == "miplib-trick") {
9679
    assign_arith_arithMLTrick(opts, name, optionarg == "true");
9680
    return;
9681
  }
9682
9562
  if (name == "miplib-trick-subs") {
9683
    assign_arith_arithMLTrickSubstitutions(opts, name, optionarg);
9684
    return;
9685
  }
9686
9562
  if (name == "new-prop") {
9687
    assign_arith_newProp(opts, name, optionarg == "true");
9688
    return;
9689
  }
9690
9562
  if (name == "nl-cad") {
9691
    assign_arith_nlCad(opts, name, optionarg == "true");
9692
    return;
9693
  }
9694
9562
  if (name == "nl-cad-initial") {
9695
    assign_arith_nlCadUseInitial(opts, name, optionarg == "true");
9696
    return;
9697
  }
9698
9562
  if (name == "nl-cad-lift") {
9699
    assign_arith_nlCadLifting(opts, name, optionarg);
9700
    return;
9701
  }
9702
9562
  if (name == "nl-cad-proj") {
9703
    assign_arith_nlCadProjection(opts, name, optionarg);
9704
    return;
9705
  }
9706
9562
  if (name == "nl-ext-ent-conf") {
9707
    assign_arith_nlExtEntailConflicts(opts, name, optionarg == "true");
9708
    return;
9709
  }
9710
9562
  if (name == "nl-ext-factor") {
9711
    assign_arith_nlExtFactor(opts, name, optionarg == "true");
9712
    return;
9713
  }
9714
9562
  if (name == "nl-ext-inc-prec") {
9715
    assign_arith_nlExtIncPrecision(opts, name, optionarg == "true");
9716
    return;
9717
  }
9718
9562
  if (name == "nl-ext-purify") {
9719
2
    assign_arith_nlExtPurify(opts, name, optionarg == "true");
9720
2
    return;
9721
  }
9722
9560
  if (name == "nl-ext-rbound") {
9723
    assign_arith_nlExtResBound(opts, name, optionarg == "true");
9724
    return;
9725
  }
9726
9560
  if (name == "nl-ext-rewrite") {
9727
    assign_arith_nlExtRewrites(opts, name, optionarg == "true");
9728
    return;
9729
  }
9730
9560
  if (name == "nl-ext-split-zero") {
9731
    assign_arith_nlExtSplitZero(opts, name, optionarg == "true");
9732
    return;
9733
  }
9734
9560
  if (name == "nl-ext-tf-taylor-deg") {
9735
    assign_arith_nlExtTfTaylorDegree(opts, name, optionarg);
9736
    return;
9737
  }
9738
9560
  if (name == "nl-ext-tf-tplanes") {
9739
    assign_arith_nlExtTfTangentPlanes(opts, name, optionarg == "true");
9740
    return;
9741
  }
9742
9560
  if (name == "nl-ext-tplanes") {
9743
    assign_arith_nlExtTangentPlanes(opts, name, optionarg == "true");
9744
    return;
9745
  }
9746
9560
  if (name == "nl-ext-tplanes-interleave") {
9747
    assign_arith_nlExtTangentPlanesInterleave(opts, name, optionarg == "true");
9748
    return;
9749
  }
9750
9560
  if (name == "nl-ext") {
9751
    assign_arith_nlExt(opts, name, optionarg);
9752
    return;
9753
  }
9754
9560
  if (name == "nl-icp") {
9755
    assign_arith_nlICP(opts, name, optionarg == "true");
9756
    return;
9757
  }
9758
9560
  if (name == "nl-rlv") {
9759
    assign_arith_nlRlvMode(opts, name, optionarg);
9760
    return;
9761
  }
9762
9560
  if (name == "pb-rewrites") {
9763
    assign_arith_pbRewrites(opts, name, optionarg == "true");
9764
    return;
9765
  }
9766
9560
  if (name == "pivot-threshold") {
9767
    assign_arith_arithPivotThreshold(opts, name, optionarg);
9768
    return;
9769
  }
9770
9560
  if (name == "pp-assert-max-sub-size") {
9771
    assign_arith_ppAssertMaxSubSize(opts, name, optionarg);
9772
    return;
9773
  }
9774
9560
  if (name == "prop-row-length") {
9775
    assign_arith_arithPropagateMaxLength(opts, name, optionarg);
9776
    return;
9777
  }
9778
9560
  if (name == "replay-early-close-depth") {
9779
    assign_arith_replayEarlyCloseDepths(opts, name, optionarg);
9780
    return;
9781
  }
9782
9560
  if (name == "replay-failure-penalty") {
9783
    assign_arith_replayFailurePenalty(opts, name, optionarg);
9784
    return;
9785
  }
9786
9560
  if (name == "replay-lemma-reject-cut") {
9787
    assign_arith_lemmaRejectCutSize(opts, name, optionarg);
9788
    return;
9789
  }
9790
9560
  if (name == "replay-num-err-penalty") {
9791
    assign_arith_replayNumericFailurePenalty(opts, name, optionarg);
9792
    return;
9793
  }
9794
9560
  if (name == "replay-reject-cut") {
9795
    assign_arith_replayRejectCutSize(opts, name, optionarg);
9796
    return;
9797
  }
9798
9560
  if (name == "replay-soi-major-threshold-pen") {
9799
    assign_arith_soiApproxMajorFailurePen(opts, name, optionarg);
9800
    return;
9801
  }
9802
9560
  if (name == "replay-soi-major-threshold") {
9803
    assign_arith_soiApproxMajorFailure(opts, name, optionarg);
9804
    return;
9805
  }
9806
9560
  if (name == "replay-soi-minor-threshold-pen") {
9807
    assign_arith_soiApproxMinorFailurePen(opts, name, optionarg);
9808
    return;
9809
  }
9810
9560
  if (name == "replay-soi-minor-threshold") {
9811
    assign_arith_soiApproxMinorFailure(opts, name, optionarg);
9812
    return;
9813
  }
9814
9560
  if (name == "restrict-pivots") {
9815
    assign_arith_restrictedPivots(opts, name, optionarg == "true");
9816
    return;
9817
  }
9818
9560
  if (name == "revert-arith-models-on-unsat") {
9819
    assign_arith_revertArithModels(opts, name, optionarg == "true");
9820
    return;
9821
  }
9822
9560
  if (name == "rr-turns") {
9823
    assign_arith_rrTurns(opts, name, optionarg);
9824
    return;
9825
  }
9826
9560
  if (name == "se-solve-int") {
9827
    assign_arith_trySolveIntStandardEffort(opts, name, optionarg == "true");
9828
    return;
9829
  }
9830
9560
  if (name == "simplex-check-period") {
9831
    assign_arith_arithSimplexCheckPeriod(opts, name, optionarg);
9832
    return;
9833
  }
9834
9560
  if (name == "soi-qe") {
9835
    assign_arith_soiQuickExplain(opts, name, optionarg == "true");
9836
    return;
9837
  }
9838
9560
  if (name == "standard-effort-variable-order-pivots") {
9839
    assign_arith_arithStandardCheckVarOrderPivots(opts, name, optionarg);
9840
    return;
9841
  }
9842
9560
  if (name == "unate-lemmas") {
9843
    assign_arith_arithUnateLemmaMode(opts, name, optionarg);
9844
    return;
9845
  }
9846
9560
  if (name == "use-approx") {
9847
    assign_arith_useApprox(opts, name, optionarg == "true");
9848
    return;
9849
  }
9850
9560
  if (name == "use-fcsimplex") {
9851
    assign_arith_useFC(opts, name, optionarg == "true");
9852
    return;
9853
  }
9854
9560
  if (name == "use-soi") {
9855
    assign_arith_useSOI(opts, name, optionarg == "true");
9856
    return;
9857
  }
9858
9560
  if (name == "arrays-config") {
9859
    assign_arrays_arraysConfig(opts, name, optionarg);
9860
    return;
9861
  }
9862
9560
  if (name == "arrays-eager-index") {
9863
    assign_arrays_arraysEagerIndexSplitting(opts, name, optionarg == "true");
9864
    return;
9865
  }
9866
9560
  if (name == "arrays-eager-lemmas") {
9867
    assign_arrays_arraysEagerLemmas(opts, name, optionarg == "true");
9868
    return;
9869
  }
9870
9560
  if (name == "arrays-exp") {
9871
7
    assign_arrays_arraysExp(opts, name, optionarg == "true");
9872
7
    return;
9873
  }
9874
9553
  if (name == "arrays-model-based") {
9875
    assign_arrays_arraysModelBased(opts, name, optionarg == "true");
9876
    return;
9877
  }
9878
9553
  if (name == "arrays-optimize-linear") {
9879
    assign_arrays_arraysOptimizeLinear(opts, name, optionarg == "true");
9880
    return;
9881
  }
9882
9553
  if (name == "arrays-prop") {
9883
    assign_arrays_arraysPropagate(opts, name, optionarg);
9884
    return;
9885
  }
9886
9553
  if (name == "arrays-reduce-sharing") {
9887
    assign_arrays_arraysReduceSharing(opts, name, optionarg == "true");
9888
    return;
9889
  }
9890
9553
  if (name == "arrays-weak-equiv") {
9891
    assign_arrays_arraysWeakEquivalence(opts, name, optionarg == "true");
9892
    return;
9893
  }
9894
9553
  if (name == "debug") {
9895
    opts.handler().enableDebugTag("debug", name, optionarg);
9896
    return;
9897
  }
9898
9553
  if (name == "diagnostic-output-channel" || name == "err") {
9899
    assign_base_err(opts, name, optionarg);
9900
    return;
9901
  }
9902
9553
  if (name == "in") {
9903
    assign_base_in(opts, name, optionarg);
9904
    return;
9905
  }
9906
9553
  if (name == "incremental") {
9907
6621
    assign_base_incrementalSolving(opts, name, optionarg == "true");
9908
6621
    return;
9909
  }
9910
2932
  if (name == "input-language" || name == "lang") {
9911
298
    assign_base_inputLanguage(opts, name, optionarg);
9912
298
    return;
9913
  }
9914
2634
  if (name == "out" || name == "regular-output-channel") {
9915
    assign_base_out(opts, name, optionarg);
9916
    return;
9917
  }
9918
2634
  if (name == "output-lang" || name == "output-language") {
9919
26
    assign_base_outputLanguage(opts, name, optionarg);
9920
26
    return;
9921
  }
9922
2608
  if (name == "output") {
9923
    opts.handler().enableOutputTag("output", name, optionarg);
9924
    return;
9925
  }
9926
2608
  if (name == "parse-only") {
9927
16
    assign_base_parseOnly(opts, name, optionarg == "true");
9928
16
    return;
9929
  }
9930
2592
  if (name == "preprocess-only") {
9931
    assign_base_preprocessOnly(opts, name, optionarg == "true");
9932
    return;
9933
  }
9934
2592
  if (name == "print-success") {
9935
28
    assign_base_printSuccess(opts, name, optionarg == "true");
9936
28
    return;
9937
  }
9938
2564
  if (name == "quiet") {
9939
4
    opts.handler().decreaseVerbosity("quiet", name);
9940
4
    return;
9941
  }
9942
2560
  if (name == "reproducible-resource-limit" || name == "rlimit-per") {
9943
    assign_base_perCallResourceLimit(opts, name, optionarg);
9944
    return;
9945
  }
9946
2560
  if (name == "rlimit") {
9947
    assign_base_cumulativeResourceLimit(opts, name, optionarg);
9948
    return;
9949
  }
9950
2560
  if (name == "rweight") {
9951
    opts.handler().setResourceWeight("rweight", name, optionarg);
9952
    return;
9953
  }
9954
2560
  if (name == "stats") {
9955
2
    assign_base_statistics(opts, name, optionarg == "true");
9956
2
    return;
9957
  }
9958
2558
  if (name == "stats-all") {
9959
1
    assign_base_statisticsAll(opts, name, optionarg == "true");
9960
1
    return;
9961
  }
9962
2557
  if (name == "stats-every-query") {
9963
    assign_base_statisticsEveryQuery(opts, name, optionarg == "true");
9964
    return;
9965
  }
9966
2557
  if (name == "stats-expert") {
9967
1
    assign_base_statisticsExpert(opts, name, optionarg == "true");
9968
1
    return;
9969
  }
9970
2556
  if (name == "tlimit-per") {
9971
    assign_base_perCallMillisecondLimit(opts, name, optionarg);
9972
    return;
9973
  }
9974
2556
  if (name == "tlimit") {
9975
    assign_base_cumulativeMillisecondLimit(opts, name, optionarg);
9976
    return;
9977
  }
9978
2556
  if (name == "trace") {
9979
    opts.handler().enableTraceTag("trace", name, optionarg);
9980
    return;
9981
  }
9982
2556
  if (name == "verbose") {
9983
    opts.handler().increaseVerbosity("verbose", name);
9984
    return;
9985
  }
9986
2556
  if (name == "verbosity") {
9987
6
    assign_base_verbosity(opts, name, optionarg);
9988
6
    return;
9989
  }
9990
2550
  if (name == "bitblast-aig") {
9991
    assign_bv_bitvectorAig(opts, name, optionarg == "true");
9992
    return;
9993
  }
9994
2550
  if (name == "bitblast") {
9995
2
    assign_bv_bitblastMode(opts, name, optionarg);
9996
2
    return;
9997
  }
9998
2548
  if (name == "bitwise-eq") {
9999
    assign_bv_bitwiseEq(opts, name, optionarg == "true");
10000
    return;
10001
  }
10002
2548
  if (name == "bool-to-bv") {
10003
    assign_bv_boolToBitvector(opts, name, optionarg);
10004
    return;
10005
  }
10006
2548
  if (name == "bv-abstraction") {
10007
    assign_bv_bvAbstraction(opts, name, optionarg == "true");
10008
    return;
10009
  }
10010
2548
  if (name == "bv-aig-simp") {
10011
    assign_bv_bitvectorAigSimplifications(opts, name, optionarg);
10012
    return;
10013
  }
10014
2548
  if (name == "bv-alg-extf") {
10015
    assign_bv_bvAlgExtf(opts, name, optionarg == "true");
10016
    return;
10017
  }
10018
2548
  if (name == "bv-algebraic-budget") {
10019
    assign_bv_bitvectorAlgebraicBudget(opts, name, optionarg);
10020
    return;
10021
  }
10022
2548
  if (name == "bv-algebraic-solver") {
10023
    assign_bv_bitvectorAlgebraicSolver(opts, name, optionarg == "true");
10024
    return;
10025
  }
10026
2548
  if (name == "bv-assert-input") {
10027
    assign_bv_bvAssertInput(opts, name, optionarg == "true");
10028
    return;
10029
  }
10030
2548
  if (name == "bv-eager-explanations") {
10031
    assign_bv_bvEagerExplanations(opts, name, optionarg == "true");
10032
    return;
10033
  }
10034
2548
  if (name == "bv-eq-solver") {
10035
    assign_bv_bitvectorEqualitySolver(opts, name, optionarg == "true");
10036
    return;
10037
  }
10038
2548
  if (name == "bv-extract-arith") {
10039
    assign_bv_bvExtractArithRewrite(opts, name, optionarg == "true");
10040
    return;
10041
  }
10042
2548
  if (name == "bv-gauss-elim") {
10043
    assign_bv_bvGaussElim(opts, name, optionarg == "true");
10044
    return;
10045
  }
10046
2548
  if (name == "bv-inequality-solver") {
10047
    assign_bv_bitvectorInequalitySolver(opts, name, optionarg == "true");
10048
    return;
10049
  }
10050
2548
  if (name == "bv-intro-pow2") {
10051
    assign_bv_bvIntroducePow2(opts, name, optionarg == "true");
10052
    return;
10053
  }
10054
2548
  if (name == "bv-num-func") {
10055
    assign_bv_bvNumFunc(opts, name, optionarg);
10056
    return;
10057
  }
10058
2548
  if (name == "bv-print-consts-as-indexed-symbols") {
10059
    assign_bv_bvPrintConstsAsIndexedSymbols(opts, name, optionarg == "true");
10060
    return;
10061
  }
10062
2548
  if (name == "bv-propagate") {
10063
    assign_bv_bitvectorPropagate(opts, name, optionarg == "true");
10064
    return;
10065
  }
10066
2548
  if (name == "bv-quick-xplain") {
10067
    assign_bv_bitvectorQuickXplain(opts, name, optionarg == "true");
10068
    return;
10069
  }
10070
2548
  if (name == "bv-sat-solver") {
10071
4
    assign_bv_bvSatSolver(opts, name, optionarg);
10072
2
    return;
10073
  }
10074
2544
  if (name == "bv-skolemize") {
10075
    assign_bv_skolemizeArguments(opts, name, optionarg == "true");
10076
    return;
10077
  }
10078
2544
  if (name == "bv-solver") {
10079
2
    assign_bv_bvSolver(opts, name, optionarg);
10080
2
    return;
10081
  }
10082
2542
  if (name == "bv-to-bool") {
10083
    assign_bv_bitvectorToBool(opts, name, optionarg == "true");
10084
    return;
10085
  }
10086
2542
  if (name == "cdt-bisimilar") {
10087
    assign_datatypes_cdtBisimilar(opts, name, optionarg == "true");
10088
    return;
10089
  }
10090
2542
  if (name == "dt-binary-split") {
10091
    assign_datatypes_dtBinarySplit(opts, name, optionarg == "true");
10092
    return;
10093
  }
10094
2542
  if (name == "dt-blast-splits") {
10095
    assign_datatypes_dtBlastSplits(opts, name, optionarg == "true");
10096
    return;
10097
  }
10098
2542
  if (name == "dt-cyclic") {
10099
    assign_datatypes_dtCyclic(opts, name, optionarg == "true");
10100
    return;
10101
  }
10102
2542
  if (name == "dt-force-assignment") {
10103
    assign_datatypes_dtForceAssignment(opts, name, optionarg == "true");
10104
    return;
10105
  }
10106
2542
  if (name == "dt-infer-as-lemmas") {
10107
    assign_datatypes_dtInferAsLemmas(opts, name, optionarg == "true");
10108
    return;
10109
  }
10110
2542
  if (name == "dt-nested-rec") {
10111
    assign_datatypes_dtNestedRec(opts, name, optionarg == "true");
10112
    return;
10113
  }
10114
2542
  if (name == "dt-polite-optimize") {
10115
    assign_datatypes_dtPoliteOptimize(opts, name, optionarg == "true");
10116
    return;
10117
  }
10118
2542
  if (name == "dt-rewrite-error-sel") {
10119
    assign_datatypes_dtRewriteErrorSel(opts, name, optionarg == "true");
10120
    return;
10121
  }
10122
2542
  if (name == "dt-share-sel") {
10123
    assign_datatypes_dtSharedSelectors(opts, name, optionarg == "true");
10124
    return;
10125
  }
10126
2542
  if (name == "sygus-abort-size") {
10127
    assign_datatypes_sygusAbortSize(opts, name, optionarg);
10128
    return;
10129
  }
10130
2542
  if (name == "sygus-fair-max") {
10131
    assign_datatypes_sygusFairMax(opts, name, optionarg == "true");
10132
    return;
10133
  }
10134
2542
  if (name == "sygus-fair") {
10135
    assign_datatypes_sygusFair(opts, name, optionarg);
10136
    return;
10137
  }
10138
2542
  if (name == "sygus-sym-break") {
10139
2
    assign_datatypes_sygusSymBreak(opts, name, optionarg == "true");
10140
2
    return;
10141
  }
10142
2540
  if (name == "sygus-sym-break-agg") {
10143
    assign_datatypes_sygusSymBreakAgg(opts, name, optionarg == "true");
10144
    return;
10145
  }
10146
2540
  if (name == "sygus-sym-break-dynamic") {
10147
    assign_datatypes_sygusSymBreakDynamic(opts, name, optionarg == "true");
10148
    return;
10149
  }
10150
2540
  if (name == "sygus-sym-break-lazy") {
10151
2
    assign_datatypes_sygusSymBreakLazy(opts, name, optionarg == "true");
10152
2
    return;
10153
  }
10154
2538
  if (name == "sygus-sym-break-pbe") {
10155
    assign_datatypes_sygusSymBreakPbe(opts, name, optionarg == "true");
10156
    return;
10157
  }
10158
2538
  if (name == "sygus-sym-break-rlv") {
10159
2
    assign_datatypes_sygusSymBreakRlv(opts, name, optionarg == "true");
10160
2
    return;
10161
  }
10162
2536
  if (name == "decision-random-weight") {
10163
    assign_decision_decisionRandomWeight(opts, name, optionarg);
10164
    return;
10165
  }
10166
2536
  if (name == "decision-threshold") {
10167
    assign_decision_decisionThreshold(opts, name, optionarg);
10168
    return;
10169
  }
10170
2536
  if (name == "decision-use-weight") {
10171
    assign_decision_decisionUseWeight(opts, name, optionarg == "true");
10172
    return;
10173
  }
10174
2536
  if (name == "decision-weight-internal") {
10175
    assign_decision_decisionWeightInternal(opts, name, optionarg);
10176
    return;
10177
  }
10178
2536
  if (name == "decision" || name == "decision-mode") {
10179
    assign_decision_decisionMode(opts, name, optionarg);
10180
    return;
10181
  }
10182
2536
  if (name == "jh-rlv-order") {
10183
    assign_decision_jhRlvOrder(opts, name, optionarg == "true");
10184
    return;
10185
  }
10186
2536
  if (name == "jh-skolem-rlv") {
10187
    assign_decision_jhSkolemRlvMode(opts, name, optionarg);
10188
    return;
10189
  }
10190
2536
  if (name == "jh-skolem") {
10191
    assign_decision_jhSkolemMode(opts, name, optionarg);
10192
    return;
10193
  }
10194
2536
  if (name == "dag-thresh") {
10195
1
    assign_expr_defaultDagThresh(opts, name, optionarg);
10196
1
    return;
10197
  }
10198
2535
  if (name == "expr-depth") {
10199
    assign_expr_defaultExprDepth(opts, name, optionarg);
10200
    return;
10201
  }
10202
2535
  if (name == "type-checking") {
10203
    assign_expr_typeChecking(opts, name, optionarg == "true");
10204
    return;
10205
  }
10206
2535
  if (name == "fp-exp") {
10207
    assign_fp_fpExp(opts, name, optionarg == "true");
10208
    return;
10209
  }
10210
2535
  if (name == "fp-lazy-wb") {
10211
    assign_fp_fpLazyWb(opts, name, optionarg == "true");
10212
    return;
10213
  }
10214
2535
  if (name == "copyright") {
10215
    opts.handler().copyright("copyright", name);
10216
    return;
10217
  }
10218
2535
  if (name == "dump-instantiations") {
10219
    assign_driver_dumpInstantiations(opts, name, optionarg == "true");
10220
    return;
10221
  }
10222
2535
  if (name == "dump-instantiations-debug") {
10223
    assign_driver_dumpInstantiationsDebug(opts, name, optionarg == "true");
10224
    return;
10225
  }
10226
2535
  if (name == "dump-models") {
10227
    assign_driver_dumpModels(opts, name, optionarg == "true");
10228
    return;
10229
  }
10230
2535
  if (name == "dump-proofs") {
10231
    assign_driver_dumpProofs(opts, name, optionarg == "true");
10232
    return;
10233
  }
10234
2535
  if (name == "dump-unsat-cores") {
10235
    assign_driver_dumpUnsatCores(opts, name, optionarg == "true");
10236
    return;
10237
  }
10238
2535
  if (name == "dump-unsat-cores-full") {
10239
    assign_driver_dumpUnsatCoresFull(opts, name, optionarg == "true");
10240
    return;
10241
  }
10242
2535
  if (name == "early-exit") {
10243
    assign_driver_earlyExit(opts, name, optionarg == "true");
10244
    return;
10245
  }
10246
2535
  if (name == "force-no-limit-cpu-while-dump") {
10247
    assign_driver_forceNoLimitCpuWhileDump(opts, name, optionarg == "true");
10248
    return;
10249
  }
10250
2535
  if (name == "help") {
10251
    assign_driver_help(opts, name, optionarg == "true");
10252
    return;
10253
  }
10254
2535
  if (name == "interactive") {
10255
    assign_driver_interactive(opts, name, optionarg == "true");
10256
    return;
10257
  }
10258
2535
  if (name == "interactive-prompt") {
10259
    assign_driver_interactivePrompt(opts, name, optionarg == "true");
10260
    return;
10261
  }
10262
2535
  if (name == "seed") {
10263
    assign_driver_seed(opts, name, optionarg);
10264
    return;
10265
  }
10266
2535
  if (name == "segv-spin") {
10267
    assign_driver_segvSpin(opts, name, optionarg == "true");
10268
    return;
10269
  }
10270
2535
  if (name == "show-config") {
10271
    opts.handler().showConfiguration("show-config", name);
10272
    return;
10273
  }
10274
2535
  if (name == "show-debug-tags") {
10275
    opts.handler().showDebugTags("show-debug-tags", name);
10276
    return;
10277
  }
10278
2535
  if (name == "show-trace-tags") {
10279
    opts.handler().showTraceTags("show-trace-tags", name);
10280
    return;
10281
  }
10282
2535
  if (name == "version") {
10283
    assign_driver_version(opts, name, optionarg == "true");
10284
    return;
10285
  }
10286
2535
  if (name == "filesystem-access") {
10287
    assign_parser_filesystemAccess(opts, name, optionarg == "true");
10288
    return;
10289
  }
10290
2535
  if (name == "force-logic") {
10291
    assign_parser_forceLogicString(opts, name, optionarg);
10292
    return;
10293
  }
10294
2535
  if (name == "global-declarations") {
10295
19
    assign_parser_globalDeclarations(opts, name, optionarg == "true");
10296
19
    return;
10297
  }
10298
2516
  if (name == "mmap") {
10299
    assign_parser_memoryMap(opts, name, optionarg == "true");
10300
    return;
10301
  }
10302
2516
  if (name == "semantic-checks") {
10303
    assign_parser_semanticChecks(opts, name, optionarg == "true");
10304
    return;
10305
  }
10306
2516
  if (name == "strict-parsing") {
10307
    assign_parser_strictParsing(opts, name, optionarg == "true");
10308
    return;
10309
  }
10310
2516
  if (name == "flatten-ho-chains") {
10311
    assign_printer_flattenHOChains(opts, name, optionarg == "true");
10312
    return;
10313
  }
10314
2516
  if (name == "inst-format") {
10315
    assign_printer_instFormatMode(opts, name, optionarg);
10316
    return;
10317
  }
10318
2516
  if (name == "model-format") {
10319
    assign_printer_modelFormatMode(opts, name, optionarg);
10320
    return;
10321
  }
10322
2516
  if (name == "print-inst-full") {
10323
    assign_printer_printInstFull(opts, name, optionarg == "true");
10324
    return;
10325
  }
10326
2516
  if (name == "print-inst") {
10327
    assign_printer_printInstMode(opts, name, optionarg);
10328
    return;
10329
  }
10330
2516
  if (name == "proof-eager-checking") {
10331
    assign_proof_proofEagerChecking(opts, name, optionarg == "true");
10332
    return;
10333
  }
10334
2516
  if (name == "proof-format-mode") {
10335
    assign_proof_proofFormatMode(opts, name, optionarg);
10336
    return;
10337
  }
10338
2516
  if (name == "proof-granularity") {
10339
    assign_proof_proofGranularityMode(opts, name, optionarg);
10340
    return;
10341
  }
10342
2516
  if (name == "proof-pedantic") {
10343
    assign_proof_proofPedantic(opts, name, optionarg);
10344
    return;
10345
  }
10346
2516
  if (name == "proof-print-conclusion") {
10347
    assign_proof_proofPrintConclusion(opts, name, optionarg == "true");
10348
    return;
10349
  }
10350
2516
  if (name == "minisat-dump-dimacs") {
10351
    assign_prop_minisatDumpDimacs(opts, name, optionarg == "true");
10352
    return;
10353
  }
10354
2516
  if (name == "minisat-elimination") {
10355
    assign_prop_minisatUseElim(opts, name, optionarg == "true");
10356
    return;
10357
  }
10358
2516
  if (name == "random-freq" || name == "random-frequency") {
10359
    assign_prop_satRandomFreq(opts, name, optionarg);
10360
    return;
10361
  }
10362
2516
  if (name == "random-seed") {
10363
2
    assign_prop_satRandomSeed(opts, name, optionarg);
10364
2
    return;
10365
  }
10366
2514
  if (name == "refine-conflicts") {
10367
    assign_prop_sat_refine_conflicts(opts, name, optionarg == "true");
10368
    return;
10369
  }
10370
2514
  if (name == "restart-int-base") {
10371
    assign_prop_satRestartFirst(opts, name, optionarg);
10372
    return;
10373
  }
10374
2514
  if (name == "restart-int-inc") {
10375
    assign_prop_satRestartInc(opts, name, optionarg);
10376
    return;
10377
  }
10378
2514
  if (name == "ag-miniscope-quant") {
10379
4
    assign_quantifiers_aggressiveMiniscopeQuant(opts, name, optionarg == "true");
10380
4
    return;
10381
  }
10382
2510
  if (name == "cegis-sample") {
10383
    assign_quantifiers_cegisSample(opts, name, optionarg);
10384
    return;
10385
  }
10386
2510
  if (name == "cegqi") {
10387
    assign_quantifiers_cegqi(opts, name, optionarg == "true");
10388
    return;
10389
  }
10390
2510
  if (name == "cegqi-all") {
10391
3
    assign_quantifiers_cegqiAll(opts, name, optionarg == "true");
10392
3
    return;
10393
  }
10394
2507
  if (name == "cegqi-bv") {
10395
    assign_quantifiers_cegqiBv(opts, name, optionarg == "true");
10396
    return;
10397
  }
10398
2507
  if (name == "cegqi-bv-concat-inv") {
10399
    assign_quantifiers_cegqiBvConcInv(opts, name, optionarg == "true");
10400
    return;
10401
  }
10402
2507
  if (name == "cegqi-bv-ineq") {
10403
    assign_quantifiers_cegqiBvIneqMode(opts, name, optionarg);
10404
    return;
10405
  }
10406
2507
  if (name == "cegqi-bv-interleave-value") {
10407
    assign_quantifiers_cegqiBvInterleaveValue(opts, name, optionarg == "true");
10408
    return;
10409
  }
10410
2507
  if (name == "cegqi-bv-linear") {
10411
    assign_quantifiers_cegqiBvLinearize(opts, name, optionarg == "true");
10412
    return;
10413
  }
10414
2507
  if (name == "cegqi-bv-rm-extract") {
10415
    assign_quantifiers_cegqiBvRmExtract(opts, name, optionarg == "true");
10416
    return;
10417
  }
10418
2507
  if (name == "cegqi-bv-solve-nl") {
10419
    assign_quantifiers_cegqiBvSolveNl(opts, name, optionarg == "true");
10420
    return;
10421
  }
10422
2507
  if (name == "cegqi-full") {
10423
512
    assign_quantifiers_cegqiFullEffort(opts, name, optionarg == "true");
10424
512
    return;
10425
  }
10426
1995
  if (name == "cegqi-innermost") {
10427
    assign_quantifiers_cegqiInnermost(opts, name, optionarg == "true");
10428
    return;
10429
  }
10430
1995
  if (name == "cegqi-midpoint") {
10431
    assign_quantifiers_cegqiMidpoint(opts, name, optionarg == "true");
10432
    return;
10433
  }
10434
1995
  if (name == "cegqi-min-bounds") {
10435
    assign_quantifiers_cegqiMinBounds(opts, name, optionarg == "true");
10436
    return;
10437
  }
10438
1995
  if (name == "cegqi-model") {
10439
    assign_quantifiers_cegqiModel(opts, name, optionarg == "true");
10440
    return;
10441
  }
10442
1995
  if (name == "cegqi-multi-inst") {
10443
    assign_quantifiers_cegqiMultiInst(opts, name, optionarg == "true");
10444
    return;
10445
  }
10446
1995
  if (name == "cegqi-nested-qe") {
10447
12
    assign_quantifiers_cegqiNestedQE(opts, name, optionarg == "true");
10448
12
    return;
10449
  }
10450
1983
  if (name == "cegqi-nopt") {
10451
    assign_quantifiers_cegqiNopt(opts, name, optionarg == "true");
10452
    return;
10453
  }
10454
1983
  if (name == "cegqi-repeat-lit") {
10455
    assign_quantifiers_cegqiRepeatLit(opts, name, optionarg == "true");
10456
    return;
10457
  }
10458
1983
  if (name == "cegqi-round-up-lia") {
10459
    assign_quantifiers_cegqiRoundUpLowerLia(opts, name, optionarg == "true");
10460
    return;
10461
  }
10462
1983
  if (name == "cegqi-sat") {
10463
    assign_quantifiers_cegqiSat(opts, name, optionarg == "true");
10464
    return;
10465
  }
10466
1983
  if (name == "cegqi-use-inf-int") {
10467
3
    assign_quantifiers_cegqiUseInfInt(opts, name, optionarg == "true");
10468
3
    return;
10469
  }
10470
1980
  if (name == "cegqi-use-inf-real") {
10471
3
    assign_quantifiers_cegqiUseInfReal(opts, name, optionarg == "true");
10472
3
    return;
10473
  }
10474
1977
  if (name == "cond-var-split-agg-quant") {
10475
    assign_quantifiers_condVarSplitQuantAgg(opts, name, optionarg == "true");
10476
    return;
10477
  }
10478
1977
  if (name == "cond-var-split-quant") {
10479
    assign_quantifiers_condVarSplitQuant(opts, name, optionarg == "true");
10480
    return;
10481
  }
10482
1977
  if (name == "conjecture-filter-active-terms") {
10483
    assign_quantifiers_conjectureFilterActiveTerms(opts, name, optionarg == "true");
10484
    return;
10485
  }
10486
1977
  if (name == "conjecture-filter-canonical") {
10487
    assign_quantifiers_conjectureFilterCanonical(opts, name, optionarg == "true");
10488
    return;
10489
  }
10490
1977
  if (name == "conjecture-filter-model") {
10491
2
    assign_quantifiers_conjectureFilterModel(opts, name, optionarg == "true");
10492
2
    return;
10493
  }
10494
1975
  if (name == "conjecture-gen") {
10495
4
    assign_quantifiers_conjectureGen(opts, name, optionarg == "true");
10496
4
    return;
10497
  }
10498
1971
  if (name == "conjecture-gen-gt-enum") {
10499
    assign_quantifiers_conjectureGenGtEnum(opts, name, optionarg);
10500
    return;
10501
  }
10502
1971
  if (name == "conjecture-gen-max-depth") {
10503
    assign_quantifiers_conjectureGenMaxDepth(opts, name, optionarg);
10504
    return;
10505
  }
10506
1971
  if (name == "conjecture-gen-per-round") {
10507
    assign_quantifiers_conjectureGenPerRound(opts, name, optionarg);
10508
    return;
10509
  }
10510
1971
  if (name == "conjecture-gen-uee-intro") {
10511
    assign_quantifiers_conjectureUeeIntro(opts, name, optionarg == "true");
10512
    return;
10513
  }
10514
1971
  if (name == "conjecture-no-filter") {
10515
2
    assign_quantifiers_conjectureNoFilter(opts, name, optionarg == "true");
10516
2
    return;
10517
  }
10518
1969
  if (name == "dt-stc-ind") {
10519
    assign_quantifiers_dtStcInduction(opts, name, optionarg == "true");
10520
    return;
10521
  }
10522
1969
  if (name == "dt-var-exp-quant") {
10523
    assign_quantifiers_dtVarExpandQuant(opts, name, optionarg == "true");
10524
    return;
10525
  }
10526
1969
  if (name == "e-matching") {
10527
1
    assign_quantifiers_eMatching(opts, name, optionarg == "true");
10528
1
    return;
10529
  }
10530
1968
  if (name == "elim-taut-quant") {
10531
    assign_quantifiers_elimTautQuant(opts, name, optionarg == "true");
10532
    return;
10533
  }
10534
1968
  if (name == "ext-rewrite-quant") {
10535
2
    assign_quantifiers_extRewriteQuant(opts, name, optionarg == "true");
10536
2
    return;
10537
  }
10538
1966
  if (name == "finite-model-find") {
10539
16
    assign_quantifiers_finiteModelFind(opts, name, optionarg == "true");
10540
16
    return;
10541
  }
10542
1950
  if (name == "fmf-bound") {
10543
14
    assign_quantifiers_fmfBound(opts, name, optionarg == "true");
10544
14
    return;
10545
  }
10546
1936
  if (name == "fmf-bound-int") {
10547
6
    assign_quantifiers_fmfBoundInt(opts, name, optionarg == "true");
10548
6
    return;
10549
  }
10550
1930
  if (name == "fmf-bound-lazy") {
10551
    assign_quantifiers_fmfBoundLazy(opts, name, optionarg == "true");
10552
    return;
10553
  }
10554
1930
  if (name == "fmf-fmc-simple") {
10555
    assign_quantifiers_fmfFmcSimple(opts, name, optionarg == "true");
10556
    return;
10557
  }
10558
1930
  if (name == "fmf-fresh-dc") {
10559
    assign_quantifiers_fmfFreshDistConst(opts, name, optionarg == "true");
10560
    return;
10561
  }
10562
1930
  if (name == "fmf-fun") {
10563
14
    assign_quantifiers_fmfFunWellDefined(opts, name, optionarg == "true");
10564
14
    return;
10565
  }
10566
1916
  if (name == "fmf-fun-rlv") {
10567
    assign_quantifiers_fmfFunWellDefinedRelevant(opts, name, optionarg == "true");
10568
    return;
10569
  }
10570
1916
  if (name == "fmf-inst-engine") {
10571
    assign_quantifiers_fmfInstEngine(opts, name, optionarg == "true");
10572
    return;
10573
  }
10574
1916
  if (name == "fmf-type-completion-thresh") {
10575
    assign_quantifiers_fmfTypeCompletionThresh(opts, name, optionarg);
10576
    return;
10577
  }
10578
1916
  if (name == "fs-interleave") {
10579
    assign_quantifiers_fullSaturateInterleave(opts, name, optionarg == "true");
10580
    return;
10581
  }
10582
1916
  if (name == "fs-stratify") {
10583
    assign_quantifiers_fullSaturateStratify(opts, name, optionarg == "true");
10584
    return;
10585
  }
10586
1916
  if (name == "fs-sum") {
10587
    assign_quantifiers_fullSaturateSum(opts, name, optionarg == "true");
10588
    return;
10589
  }
10590
1916
  if (name == "full-saturate-quant") {
10591
    assign_quantifiers_fullSaturateQuant(opts, name, optionarg == "true");
10592
    return;
10593
  }
10594
1916
  if (name == "full-saturate-quant-limit") {
10595
    assign_quantifiers_fullSaturateLimit(opts, name, optionarg);
10596
    return;
10597
  }
10598
1916
  if (name == "full-saturate-quant-rd") {
10599
    assign_quantifiers_fullSaturateQuantRd(opts, name, optionarg == "true");
10600
    return;
10601
  }
10602
1916
  if (name == "global-negate") {
10603
2
    assign_quantifiers_globalNegate(opts, name, optionarg == "true");
10604
2
    return;
10605
  }
10606
1914
  if (name == "ho-elim") {
10607
    assign_quantifiers_hoElim(opts, name, optionarg == "true");
10608
    return;
10609
  }
10610
1914
  if (name == "ho-elim-store-ax") {
10611
    assign_quantifiers_hoElimStoreAx(opts, name, optionarg == "true");
10612
    return;
10613
  }
10614
1914
  if (name == "ho-matching") {
10615
    assign_quantifiers_hoMatching(opts, name, optionarg == "true");
10616
    return;
10617
  }
10618
1914
  if (name == "ho-matching-var-priority") {
10619
    assign_quantifiers_hoMatchingVarArgPriority(opts, name, optionarg == "true");
10620
    return;
10621
  }
10622
1914
  if (name == "ho-merge-term-db") {
10623
    assign_quantifiers_hoMergeTermDb(opts, name, optionarg == "true");
10624
    return;
10625
  }
10626
1914
  if (name == "increment-triggers") {
10627
    assign_quantifiers_incrementTriggers(opts, name, optionarg == "true");
10628
    return;
10629
  }
10630
1914
  if (name == "inst-level-input-only") {
10631
    assign_quantifiers_instLevelInputOnly(opts, name, optionarg == "true");
10632
    return;
10633
  }
10634
1914
  if (name == "inst-max-level") {
10635
    assign_quantifiers_instMaxLevel(opts, name, optionarg);
10636
    return;
10637
  }
10638
1914
  if (name == "inst-max-rounds") {
10639
    assign_quantifiers_instMaxRounds(opts, name, optionarg);
10640
    return;
10641
  }
10642
1914
  if (name == "inst-no-entail") {
10643
    assign_quantifiers_instNoEntail(opts, name, optionarg == "true");
10644
    return;
10645
  }
10646
1914
  if (name == "inst-when-phase") {
10647
    assign_quantifiers_instWhenPhase(opts, name, optionarg);
10648
    return;
10649
  }
10650
1914
  if (name == "inst-when-strict-interleave") {
10651
    assign_quantifiers_instWhenStrictInterleave(opts, name, optionarg == "true");
10652
    return;
10653
  }
10654
1914
  if (name == "inst-when-tc-first") {
10655
    assign_quantifiers_instWhenTcFirst(opts, name, optionarg == "true");
10656
    return;
10657
  }
10658
1914
  if (name == "inst-when") {
10659
    assign_quantifiers_instWhenMode(opts, name, optionarg);
10660
    return;
10661
  }
10662
1914
  if (name == "int-wf-ind") {
10663
2
    assign_quantifiers_intWfInduction(opts, name, optionarg == "true");
10664
2
    return;
10665
  }
10666
1912
  if (name == "ite-dtt-split-quant") {
10667
    assign_quantifiers_iteDtTesterSplitQuant(opts, name, optionarg == "true");
10668
    return;
10669
  }
10670
1912
  if (name == "ite-lift-quant") {
10671
    assign_quantifiers_iteLiftQuant(opts, name, optionarg);
10672
    return;
10673
  }
10674
1912
  if (name == "literal-matching") {
10675
    assign_quantifiers_literalMatchMode(opts, name, optionarg);
10676
    return;
10677
  }
10678
1912
  if (name == "macros-quant") {
10679
    assign_quantifiers_macrosQuant(opts, name, optionarg == "true");
10680
    return;
10681
  }
10682
1912
  if (name == "macros-quant-mode") {
10683
    assign_quantifiers_macrosQuantMode(opts, name, optionarg);
10684
    return;
10685
  }
10686
1912
  if (name == "mbqi-interleave") {
10687
    assign_quantifiers_mbqiInterleave(opts, name, optionarg == "true");
10688
    return;
10689
  }
10690
1912
  if (name == "mbqi-one-inst-per-round") {
10691
    assign_quantifiers_fmfOneInstPerRound(opts, name, optionarg == "true");
10692
    return;
10693
  }
10694
1912
  if (name == "mbqi") {
10695
    assign_quantifiers_mbqiMode(opts, name, optionarg);
10696
    return;
10697
  }
10698
1912
  if (name == "miniscope-quant") {
10699
116
    assign_quantifiers_miniscopeQuant(opts, name, optionarg == "true");
10700
116
    return;
10701
  }
10702
1796
  if (name == "miniscope-quant-fv") {
10703
114
    assign_quantifiers_miniscopeQuantFreeVar(opts, name, optionarg == "true");
10704
114
    return;
10705
  }
10706
1682
  if (name == "multi-trigger-cache") {
10707
    assign_quantifiers_multiTriggerCache(opts, name, optionarg == "true");
10708
    return;
10709
  }
10710
1682
  if (name == "multi-trigger-linear") {
10711
    assign_quantifiers_multiTriggerLinear(opts, name, optionarg == "true");
10712
    return;
10713
  }
10714
1682
  if (name == "multi-trigger-priority") {
10715
    assign_quantifiers_multiTriggerPriority(opts, name, optionarg == "true");
10716
    return;
10717
  }
10718
1682
  if (name == "multi-trigger-when-single") {
10719
    assign_quantifiers_multiTriggerWhenSingle(opts, name, optionarg == "true");
10720
    return;
10721
  }
10722
1682
  if (name == "partial-triggers") {
10723
    assign_quantifiers_partialTriggers(opts, name, optionarg == "true");
10724
    return;
10725
  }
10726
1682
  if (name == "pool-inst") {
10727
    assign_quantifiers_poolInst(opts, name, optionarg == "true");
10728
    return;
10729
  }
10730
1682
  if (name == "pre-skolem-quant") {
10731
2
    assign_quantifiers_preSkolemQuant(opts, name, optionarg == "true");
10732
2
    return;
10733
  }
10734
1680
  if (name == "pre-skolem-quant-agg") {
10735
    assign_quantifiers_preSkolemQuantAgg(opts, name, optionarg == "true");
10736
    return;
10737
  }
10738
1680
  if (name == "pre-skolem-quant-nested") {
10739
2
    assign_quantifiers_preSkolemQuantNested(opts, name, optionarg == "true");
10740
2
    return;
10741
  }
10742
1678
  if (name == "prenex-quant-user") {
10743
    assign_quantifiers_prenexQuantUser(opts, name, optionarg == "true");
10744
    return;
10745
  }
10746
1678
  if (name == "prenex-quant") {
10747
    assign_quantifiers_prenexQuant(opts, name, optionarg);
10748
    return;
10749
  }
10750
1678
  if (name == "purify-triggers") {
10751
    assign_quantifiers_purifyTriggers(opts, name, optionarg == "true");
10752
    return;
10753
  }
10754
1678
  if (name == "qcf-all-conflict") {
10755
    assign_quantifiers_qcfAllConflict(opts, name, optionarg == "true");
10756
    return;
10757
  }
10758
1678
  if (name == "qcf-eager-check-rd") {
10759
    assign_quantifiers_qcfEagerCheckRd(opts, name, optionarg == "true");
10760
    return;
10761
  }
10762
1678
  if (name == "qcf-eager-test") {
10763
    assign_quantifiers_qcfEagerTest(opts, name, optionarg == "true");
10764
    return;
10765
  }
10766
1678
  if (name == "qcf-nested-conflict") {
10767
    assign_quantifiers_qcfNestedConflict(opts, name, optionarg == "true");
10768
    return;
10769
  }
10770
1678
  if (name == "qcf-skip-rd") {
10771
    assign_quantifiers_qcfSkipRd(opts, name, optionarg == "true");
10772
    return;
10773
  }
10774
1678
  if (name == "qcf-tconstraint") {
10775
    assign_quantifiers_qcfTConstraint(opts, name, optionarg == "true");
10776
    return;
10777
  }
10778
1678
  if (name == "qcf-vo-exp") {
10779
    assign_quantifiers_qcfVoExp(opts, name, optionarg == "true");
10780
    return;
10781
  }
10782
1678
  if (name == "quant-alpha-equiv") {
10783
    assign_quantifiers_quantAlphaEquiv(opts, name, optionarg == "true");
10784
    return;
10785
  }
10786
1678
  if (name == "quant-cf") {
10787
    assign_quantifiers_quantConflictFind(opts, name, optionarg == "true");
10788
    return;
10789
  }
10790
1678
  if (name == "quant-cf-mode") {
10791
    assign_quantifiers_qcfMode(opts, name, optionarg);
10792
    return;
10793
  }
10794
1678
  if (name == "quant-cf-when") {
10795
    assign_quantifiers_qcfWhenMode(opts, name, optionarg);
10796
    return;
10797
  }
10798
1678
  if (name == "quant-dsplit-mode") {
10799
    assign_quantifiers_quantDynamicSplit(opts, name, optionarg);
10800
    return;
10801
  }
10802
1678
  if (name == "quant-fun-wd") {
10803
    assign_quantifiers_quantFunWellDefined(opts, name, optionarg == "true");
10804
    return;
10805
  }
10806
1678
  if (name == "quant-ind") {
10807
2
    assign_quantifiers_quantInduction(opts, name, optionarg == "true");
10808
2
    return;
10809
  }
10810
1676
  if (name == "quant-rep-mode") {
10811
    assign_quantifiers_quantRepMode(opts, name, optionarg);
10812
    return;
10813
  }
10814
1676
  if (name == "quant-split") {
10815
114
    assign_quantifiers_quantSplit(opts, name, optionarg == "true");
10816
114
    return;
10817
  }
10818
1562
  if (name == "register-quant-body-terms") {
10819
    assign_quantifiers_registerQuantBodyTerms(opts, name, optionarg == "true");
10820
    return;
10821
  }
10822
1562
  if (name == "relational-triggers") {
10823
    assign_quantifiers_relationalTriggers(opts, name, optionarg == "true");
10824
    return;
10825
  }
10826
1562
  if (name == "relevant-triggers") {
10827
    assign_quantifiers_relevantTriggers(opts, name, optionarg == "true");
10828
    return;
10829
  }
10830
1562
  if (name == "strict-triggers") {
10831
    assign_quantifiers_strictTriggers(opts, name, optionarg == "true");
10832
    return;
10833
  }
10834
1562
  if (name == "sygus") {
10835
    assign_quantifiers_sygus(opts, name, optionarg == "true");
10836
    return;
10837
  }
10838
1562
  if (name == "sygus-active-gen-cfactor") {
10839
    assign_quantifiers_sygusActiveGenEnumConsts(opts, name, optionarg);
10840
    return;
10841
  }
10842
1562
  if (name == "sygus-active-gen") {
10843
1
    assign_quantifiers_sygusActiveGenMode(opts, name, optionarg);
10844
1
    return;
10845
  }
10846
1561
  if (name == "sygus-add-const-grammar") {
10847
    assign_quantifiers_sygusAddConstGrammar(opts, name, optionarg == "true");
10848
    return;
10849
  }
10850
1561
  if (name == "sygus-arg-relevant") {
10851
    assign_quantifiers_sygusArgRelevant(opts, name, optionarg == "true");
10852
    return;
10853
  }
10854
1561
  if (name == "sygus-auto-unfold") {
10855
    assign_quantifiers_sygusInvAutoUnfold(opts, name, optionarg == "true");
10856
    return;
10857
  }
10858
1561
  if (name == "sygus-bool-ite-return-const") {
10859
    assign_quantifiers_sygusBoolIteReturnConst(opts, name, optionarg == "true");
10860
    return;
10861
  }
10862
1561
  if (name == "sygus-core-connective") {
10863
    assign_quantifiers_sygusCoreConnective(opts, name, optionarg == "true");
10864
    return;
10865
  }
10866
1561
  if (name == "sygus-crepair-abort") {
10867
    assign_quantifiers_sygusConstRepairAbort(opts, name, optionarg == "true");
10868
    return;
10869
  }
10870
1561
  if (name == "sygus-eval-opt") {
10871
    assign_quantifiers_sygusEvalOpt(opts, name, optionarg == "true");
10872
    return;
10873
  }
10874
1561
  if (name == "sygus-eval-unfold") {
10875
    assign_quantifiers_sygusEvalUnfold(opts, name, optionarg == "true");
10876
    return;
10877
  }
10878
1561
  if (name == "sygus-eval-unfold-bool") {
10879
    assign_quantifiers_sygusEvalUnfoldBool(opts, name, optionarg == "true");
10880
    return;
10881
  }
10882
1561
  if (name == "sygus-expr-miner-check-timeout") {
10883
    assign_quantifiers_sygusExprMinerCheckTimeout(opts, name, optionarg);
10884
    return;
10885
  }
10886
1561
  if (name == "sygus-ext-rew") {
10887
2
    assign_quantifiers_sygusExtRew(opts, name, optionarg == "true");
10888
2
    return;
10889
  }
10890
1559
  if (name == "sygus-filter-sol-rev") {
10891
    assign_quantifiers_sygusFilterSolRevSubsume(opts, name, optionarg == "true");
10892
    return;
10893
  }
10894
1559
  if (name == "sygus-filter-sol") {
10895
    assign_quantifiers_sygusFilterSolMode(opts, name, optionarg);
10896
    return;
10897
  }
10898
1559
  if (name == "sygus-grammar-cons") {
10899
    assign_quantifiers_sygusGrammarConsMode(opts, name, optionarg);
10900
    return;
10901
  }
10902
1559
  if (name == "sygus-grammar-norm") {
10903
    assign_quantifiers_sygusGrammarNorm(opts, name, optionarg == "true");
10904
    return;
10905
  }
10906
1559
  if (name == "sygus-inference") {
10907
14
    assign_quantifiers_sygusInference(opts, name, optionarg == "true");
10908
14
    return;
10909
  }
10910
1545
  if (name == "sygus-inst") {
10911
4
    assign_quantifiers_sygusInst(opts, name, optionarg == "true");
10912
4
    return;
10913
  }
10914
1541
  if (name == "sygus-inst-mode") {
10915
    assign_quantifiers_sygusInstMode(opts, name, optionarg);
10916
    return;
10917
  }
10918
1541
  if (name == "sygus-inst-scope") {
10919
    assign_quantifiers_sygusInstScope(opts, name, optionarg);
10920
    return;
10921
  }
10922
1541
  if (name == "sygus-inst-term-sel") {
10923
    assign_quantifiers_sygusInstTermSel(opts, name, optionarg);
10924
    return;
10925
  }
10926
1541
  if (name == "sygus-inv-templ-when-sg") {
10927
    assign_quantifiers_sygusInvTemplWhenSyntax(opts, name, optionarg == "true");
10928
    return;
10929
  }
10930
1541
  if (name == "sygus-inv-templ") {
10931
    assign_quantifiers_sygusInvTemplMode(opts, name, optionarg);
10932
    return;
10933
  }
10934
1541
  if (name == "sygus-min-grammar") {
10935
    assign_quantifiers_sygusMinGrammar(opts, name, optionarg == "true");
10936
    return;
10937
  }
10938
1541
  if (name == "sygus-pbe") {
10939
    assign_quantifiers_sygusUnifPbe(opts, name, optionarg == "true");
10940
    return;
10941
  }
10942
1541
  if (name == "sygus-pbe-multi-fair") {
10943
    assign_quantifiers_sygusPbeMultiFair(opts, name, optionarg == "true");
10944
    return;
10945
  }
10946
1541
  if (name == "sygus-pbe-multi-fair-diff") {
10947
    assign_quantifiers_sygusPbeMultiFairDiff(opts, name, optionarg);
10948
    return;
10949
  }
10950
1541
  if (name == "sygus-qe-preproc") {
10951
    assign_quantifiers_sygusQePreproc(opts, name, optionarg == "true");
10952
    return;
10953
  }
10954
1541
  if (name == "sygus-query-gen") {
10955
    assign_quantifiers_sygusQueryGen(opts, name, optionarg == "true");
10956
    return;
10957
  }
10958
1541
  if (name == "sygus-query-gen-check") {
10959
    assign_quantifiers_sygusQueryGenCheck(opts, name, optionarg == "true");
10960
    return;
10961
  }
10962
1541
  if (name == "sygus-query-gen-dump-files") {
10963
    assign_quantifiers_sygusQueryGenDumpFiles(opts, name, optionarg);
10964
    return;
10965
  }
10966
1541
  if (name == "sygus-query-gen-thresh") {
10967
    assign_quantifiers_sygusQueryGenThresh(opts, name, optionarg);
10968
    return;
10969
  }
10970
1541
  if (name == "sygus-rec-fun") {
10971
2
    assign_quantifiers_sygusRecFun(opts, name, optionarg == "true");
10972
2
    return;
10973
  }
10974
1539
  if (name == "sygus-rec-fun-eval-limit") {
10975
    assign_quantifiers_sygusRecFunEvalLimit(opts, name, optionarg);
10976
    return;
10977
  }
10978
1539
  if (name == "sygus-repair-const") {
10979
    assign_quantifiers_sygusRepairConst(opts, name, optionarg == "true");
10980
    return;
10981
  }
10982
1539
  if (name == "sygus-repair-const-timeout") {
10983
    assign_quantifiers_sygusRepairConstTimeout(opts, name, optionarg);
10984
    return;
10985
  }
10986
1539
  if (name == "sygus-rr") {
10987
    assign_quantifiers_sygusRew(opts, name, optionarg == "true");
10988
    return;
10989
  }
10990
1539
  if (name == "sygus-rr-synth") {
10991
    assign_quantifiers_sygusRewSynth(opts, name, optionarg == "true");
10992
    return;
10993
  }
10994
1539
  if (name == "sygus-rr-synth-accel") {
10995
    assign_quantifiers_sygusRewSynthAccel(opts, name, optionarg == "true");
10996
    return;
10997
  }
10998
1539
  if (name == "sygus-rr-synth-check") {
10999
2
    assign_quantifiers_sygusRewSynthCheck(opts, name, optionarg == "true");
11000
2
    return;
11001
  }
11002
1537
  if (name == "sygus-rr-synth-filter-cong") {
11003
    assign_quantifiers_sygusRewSynthFilterCong(opts, name, optionarg == "true");
11004
    return;
11005
  }
11006
1537
  if (name == "sygus-rr-synth-filter-match") {
11007
    assign_quantifiers_sygusRewSynthFilterMatch(opts, name, optionarg == "true");
11008
    return;
11009
  }
11010
1537
  if (name == "sygus-rr-synth-filter-nl") {
11011
    assign_quantifiers_sygusRewSynthFilterNonLinear(opts, name, optionarg == "true");
11012
    return;
11013
  }
11014
1537
  if (name == "sygus-rr-synth-filter-order") {
11015
    assign_quantifiers_sygusRewSynthFilterOrder(opts, name, optionarg == "true");
11016
    return;
11017
  }
11018
1537
  if (name == "sygus-rr-synth-input") {
11019
256
    assign_quantifiers_sygusRewSynthInput(opts, name, optionarg == "true");
11020
256
    return;
11021
  }
11022
1281
  if (name == "sygus-rr-synth-input-nvars") {
11023
    assign_quantifiers_sygusRewSynthInputNVars(opts, name, optionarg);
11024
    return;
11025
  }
11026
1281
  if (name == "sygus-rr-synth-input-use-bool") {
11027
    assign_quantifiers_sygusRewSynthInputUseBool(opts, name, optionarg == "true");
11028
    return;
11029
  }
11030
1281
  if (name == "sygus-rr-synth-rec") {
11031
    assign_quantifiers_sygusRewSynthRec(opts, name, optionarg == "true");
11032
    return;
11033
  }
11034
1281
  if (name == "sygus-rr-verify") {
11035
    assign_quantifiers_sygusRewVerify(opts, name, optionarg == "true");
11036
    return;
11037
  }
11038
1281
  if (name == "sygus-rr-verify-abort") {
11039
    assign_quantifiers_sygusRewVerifyAbort(opts, name, optionarg == "true");
11040
    return;
11041
  }
11042
1281
  if (name == "sygus-sample-fp-uniform") {
11043
    assign_quantifiers_sygusSampleFpUniform(opts, name, optionarg == "true");
11044
    return;
11045
  }
11046
1281
  if (name == "sygus-sample-grammar") {
11047
    assign_quantifiers_sygusSampleGrammar(opts, name, optionarg == "true");
11048
    return;
11049
  }
11050
1281
  if (name == "sygus-samples") {
11051
    assign_quantifiers_sygusSamples(opts, name, optionarg);
11052
    return;
11053
  }
11054
1281
  if (name == "sygus-si-abort") {
11055
    assign_quantifiers_cegqiSingleInvAbort(opts, name, optionarg == "true");
11056
    return;
11057
  }
11058
1281
  if (name == "sygus-si-partial") {
11059
    assign_quantifiers_cegqiSingleInvPartial(opts, name, optionarg == "true");
11060
    return;
11061
  }
11062
1281
  if (name == "sygus-si-rcons-limit") {
11063
    assign_quantifiers_cegqiSingleInvReconstructLimit(opts, name, optionarg);
11064
    return;
11065
  }
11066
1281
  if (name == "sygus-si-rcons") {
11067
    assign_quantifiers_cegqiSingleInvReconstruct(opts, name, optionarg);
11068
    return;
11069
  }
11070
1281
  if (name == "sygus-si-reconstruct-const") {
11071
    assign_quantifiers_cegqiSingleInvReconstructConst(opts, name, optionarg == "true");
11072
    return;
11073
  }
11074
1281
  if (name == "sygus-si") {
11075
    assign_quantifiers_cegqiSingleInvMode(opts, name, optionarg);
11076
    return;
11077
  }
11078
1281
  if (name == "sygus-stream") {
11079
    assign_quantifiers_sygusStream(opts, name, optionarg == "true");
11080
    return;
11081
  }
11082
1281
  if (name == "sygus-templ-embed-grammar") {
11083
    assign_quantifiers_sygusTemplEmbedGrammar(opts, name, optionarg == "true");
11084
    return;
11085
  }
11086
1281
  if (name == "sygus-unif-cond-independent-no-repeat-sol") {
11087
    assign_quantifiers_sygusUnifCondIndNoRepeatSol(opts, name, optionarg == "true");
11088
    return;
11089
  }
11090
1281
  if (name == "sygus-unif-pi") {
11091
    assign_quantifiers_sygusUnifPi(opts, name, optionarg);
11092
    return;
11093
  }
11094
1281
  if (name == "sygus-unif-shuffle-cond") {
11095
    assign_quantifiers_sygusUnifShuffleCond(opts, name, optionarg == "true");
11096
    return;
11097
  }
11098
1281
  if (name == "sygus-verify-inst-max-rounds") {
11099
    assign_quantifiers_sygusVerifyInstMaxRounds(opts, name, optionarg);
11100
    return;
11101
  }
11102
1281
  if (name == "term-db-cd") {
11103
    assign_quantifiers_termDbCd(opts, name, optionarg == "true");
11104
    return;
11105
  }
11106
1281
  if (name == "term-db-mode") {
11107
    assign_quantifiers_termDbMode(opts, name, optionarg);
11108
    return;
11109
  }
11110
1281
  if (name == "trigger-active-sel") {
11111
    assign_quantifiers_triggerActiveSelMode(opts, name, optionarg);
11112
    return;
11113
  }
11114
1281
  if (name == "trigger-sel") {
11115
    assign_quantifiers_triggerSelMode(opts, name, optionarg);
11116
    return;
11117
  }
11118
1281
  if (name == "user-pat") {
11119
    assign_quantifiers_userPatternsQuant(opts, name, optionarg);
11120
    return;
11121
  }
11122
1281
  if (name == "var-elim-quant") {
11123
    assign_quantifiers_varElimQuant(opts, name, optionarg == "true");
11124
    return;
11125
  }
11126
1281
  if (name == "var-ineq-elim-quant") {
11127
5
    assign_quantifiers_varIneqElimQuant(opts, name, optionarg == "true");
11128
5
    return;
11129
  }
11130
1276
  if (name == "sep-check-neg") {
11131
    assign_sep_sepCheckNeg(opts, name, optionarg == "true");
11132
    return;
11133
  }
11134
1276
  if (name == "sep-child-refine") {
11135
    assign_sep_sepChildRefine(opts, name, optionarg == "true");
11136
    return;
11137
  }
11138
1276
  if (name == "sep-deq-c") {
11139
    assign_sep_sepDisequalC(opts, name, optionarg == "true");
11140
    return;
11141
  }
11142
1276
  if (name == "sep-exp") {
11143
    assign_sep_sepExp(opts, name, optionarg == "true");
11144
    return;
11145
  }
11146
1276
  if (name == "sep-min-refine") {
11147
    assign_sep_sepMinimalRefine(opts, name, optionarg == "true");
11148
    return;
11149
  }
11150
1276
  if (name == "sep-pre-skolem-emp") {
11151
    assign_sep_sepPreSkolemEmp(opts, name, optionarg == "true");
11152
    return;
11153
  }
11154
1276
  if (name == "sets-ext") {
11155
84
    assign_sets_setsExt(opts, name, optionarg == "true");
11156
84
    return;
11157
  }
11158
1192
  if (name == "sets-infer-as-lemmas") {
11159
    assign_sets_setsInferAsLemmas(opts, name, optionarg == "true");
11160
    return;
11161
  }
11162
1192
  if (name == "sets-proxy-lemmas") {
11163
    assign_sets_setsProxyLemmas(opts, name, optionarg == "true");
11164
    return;
11165
  }
11166
1192
  if (name == "abstract-values") {
11167
    assign_smt_abstractValues(opts, name, optionarg == "true");
11168
    return;
11169
  }
11170
1192
  if (name == "ackermann") {
11171
    assign_smt_ackermann(opts, name, optionarg == "true");
11172
    return;
11173
  }
11174
1192
  if (name == "block-models") {
11175
14
    assign_smt_blockModelsMode(opts, name, optionarg);
11176
14
    return;
11177
  }
11178
1178
  if (name == "bvand-integer-granularity") {
11179
    assign_smt_BVAndIntegerGranularity(opts, name, optionarg);
11180
    return;
11181
  }
11182
1178
  if (name == "check-abducts") {
11183
    assign_smt_checkAbducts(opts, name, optionarg == "true");
11184
    return;
11185
  }
11186
1178
  if (name == "check-interpols") {
11187
    assign_smt_checkInterpols(opts, name, optionarg == "true");
11188
    return;
11189
  }
11190
1178
  if (name == "check-models") {
11191
9
    assign_smt_checkModels(opts, name, optionarg == "true");
11192
9
    return;
11193
  }
11194
1169
  if (name == "check-proofs") {
11195
    assign_smt_checkProofs(opts, name, optionarg == "true");
11196
    return;
11197
  }
11198
1169
  if (name == "check-synth-sol") {
11199
    assign_smt_checkSynthSol(opts, name, optionarg == "true");
11200
    return;
11201
  }
11202
1169
  if (name == "check-unsat-cores") {
11203
8
    assign_smt_checkUnsatCores(opts, name, optionarg == "true");
11204
8
    return;
11205
  }
11206
1161
  if (name == "debug-check-models") {
11207
    assign_smt_debugCheckModels(opts, name, optionarg == "true");
11208
    return;
11209
  }
11210
1161
  if (name == "dump-to") {
11211
    assign_smt_dumpToFileName(opts, name, optionarg);
11212
    return;
11213
  }
11214
1161
  if (name == "dump") {
11215
    assign_smt_dumpModeString(opts, name, optionarg);
11216
    return;
11217
  }
11218
1161
  if (name == "early-ite-removal") {
11219
    assign_smt_earlyIteRemoval(opts, name, optionarg == "true");
11220
    return;
11221
  }
11222
1161
  if (name == "expand-definitions") {
11223
    assign_smt_expandDefinitions(opts, name, optionarg == "true");
11224
    return;
11225
  }
11226
1161
  if (name == "ext-rew-prep") {
11227
2
    assign_smt_extRewPrep(opts, name, optionarg == "true");
11228
2
    return;
11229
  }
11230
1159
  if (name == "ext-rew-prep-agg") {
11231
    assign_smt_extRewPrepAgg(opts, name, optionarg == "true");
11232
    return;
11233
  }
11234
1159
  if (name == "foreign-theory-rewrite") {
11235
    assign_smt_foreignTheoryRewrite(opts, name, optionarg == "true");
11236
    return;
11237
  }
11238
1159
  if (name == "iand-mode") {
11239
    assign_smt_iandMode(opts, name, optionarg);
11240
    return;
11241
  }
11242
1159
  if (name == "interactive-mode") {
11243
2
    assign_smt_interactiveMode(opts, name, optionarg == "true");
11244
2
    return;
11245
  }
11246
1157
  if (name == "ite-simp") {
11247
3
    assign_smt_doITESimp(opts, name, optionarg == "true");
11248
3
    return;
11249
  }
11250
1154
  if (name == "learned-rewrite") {
11251
    assign_smt_learnedRewrite(opts, name, optionarg == "true");
11252
    return;
11253
  }
11254
1154
  if (name == "minimal-unsat-cores") {
11255
    assign_smt_minimalUnsatCores(opts, name, optionarg == "true");
11256
    return;
11257
  }
11258
1154
  if (name == "model-cores") {
11259
    assign_smt_modelCoresMode(opts, name, optionarg);
11260
    return;
11261
  }
11262
1154
  if (name == "model-u-print" || name == "model-uninterp-print") {
11263
    assign_smt_modelUninterpPrint(opts, name, optionarg);
11264
    return;
11265
  }
11266
1154
  if (name == "model-witness-value") {
11267
    assign_smt_modelWitnessValue(opts, name, optionarg == "true");
11268
    return;
11269
  }
11270
1154
  if (name == "on-repeat-ite-simp") {
11271
    assign_smt_doITESimpOnRepeat(opts, name, optionarg == "true");
11272
    return;
11273
  }
11274
1154
  if (name == "produce-abducts") {
11275
9
    assign_smt_produceAbducts(opts, name, optionarg == "true");
11276
9
    return;
11277
  }
11278
1145
  if (name == "produce-assertions") {
11279
26
    assign_smt_produceAssertions(opts, name, optionarg == "true");
11280
26
    return;
11281
  }
11282
1119
  if (name == "produce-assignments") {
11283
4
    assign_smt_produceAssignments(opts, name, optionarg == "true");
11284
4
    return;
11285
  }
11286
1115
  if (name == "produce-interpols") {
11287
3
    assign_smt_produceInterpols(opts, name, optionarg);
11288
3
    return;
11289
  }
11290
1112
  if (name == "produce-models") {
11291
759
    assign_smt_produceModels(opts, name, optionarg == "true");
11292
759
    return;
11293
  }
11294
353
  if (name == "produce-proofs") {
11295
6
    assign_smt_produceProofs(opts, name, optionarg == "true");
11296
6
    return;
11297
  }
11298
347
  if (name == "produce-unsat-assumptions") {
11299
15
    assign_smt_unsatAssumptions(opts, name, optionarg == "true");
11300
15
    return;
11301
  }
11302
332
  if (name == "produce-unsat-cores") {
11303
15
    assign_smt_unsatCores(opts, name, optionarg == "true");
11304
15
    return;
11305
  }
11306
317
  if (name == "repeat-simp") {
11307
2
    assign_smt_repeatSimp(opts, name, optionarg == "true");
11308
2
    return;
11309
  }
11310
315
  if (name == "simp-ite-compress") {
11311
3
    assign_smt_compressItes(opts, name, optionarg == "true");
11312
3
    return;
11313
  }
11314
312
  if (name == "simp-ite-hunt-zombies") {
11315
    assign_smt_zombieHuntThreshold(opts, name, optionarg);
11316
    return;
11317
  }
11318
312
  if (name == "simp-with-care") {
11319
    assign_smt_simplifyWithCareEnabled(opts, name, optionarg == "true");
11320
    return;
11321
  }
11322
312
  if (name == "simplification" || name == "simplification-mode") {
11323
1
    assign_smt_simplificationMode(opts, name, optionarg);
11324
1
    return;
11325
  }
11326
311
  if (name == "solve-bv-as-int") {
11327
14
    assign_smt_solveBVAsInt(opts, name, optionarg);
11328
14
    return;
11329
  }
11330
297
  if (name == "solve-int-as-bv") {
11331
4
    assign_smt_solveIntAsBV(opts, name, optionarg);
11332
4
    return;
11333
  }
11334
293
  if (name == "solve-real-as-int") {
11335
    assign_smt_solveRealAsInt(opts, name, optionarg == "true");
11336
    return;
11337
  }
11338
293
  if (name == "sort-inference") {
11339
6
    assign_smt_sortInference(opts, name, optionarg == "true");
11340
6
    return;
11341
  }
11342
287
  if (name == "static-learning") {
11343
    assign_smt_doStaticLearning(opts, name, optionarg == "true");
11344
    return;
11345
  }
11346
287
  if (name == "sygus-out") {
11347
    assign_smt_sygusOut(opts, name, optionarg);
11348
    return;
11349
  }
11350
287
  if (name == "sygus-print-callbacks") {
11351
    assign_smt_sygusPrintCallbacks(opts, name, optionarg == "true");
11352
    return;
11353
  }
11354
287
  if (name == "unconstrained-simp") {
11355
    assign_smt_unconstrainedSimp(opts, name, optionarg == "true");
11356
    return;
11357
  }
11358
287
  if (name == "unsat-cores-mode") {
11359
    assign_smt_unsatCoresMode(opts, name, optionarg);
11360
    return;
11361
  }
11362
287
  if (name == "re-elim") {
11363
16
    assign_strings_regExpElim(opts, name, optionarg == "true");
11364
16
    return;
11365
  }
11366
271
  if (name == "re-elim-agg") {
11367
8
    assign_strings_regExpElimAgg(opts, name, optionarg == "true");
11368
8
    return;
11369
  }
11370
263
  if (name == "re-inter-mode") {
11371
    assign_strings_stringRegExpInterMode(opts, name, optionarg);
11372
    return;
11373
  }
11374
263
  if (name == "strings-check-entail-len") {
11375
    assign_strings_stringCheckEntailLen(opts, name, optionarg == "true");
11376
    return;
11377
  }
11378
263
  if (name == "strings-eager") {
11379
    assign_strings_stringEager(opts, name, optionarg == "true");
11380
    return;
11381
  }
11382
263
  if (name == "strings-eager-eval") {
11383
    assign_strings_stringEagerEval(opts, name, optionarg == "true");
11384
    return;
11385
  }
11386
263
  if (name == "strings-eager-len") {
11387
    assign_strings_stringEagerLen(opts, name, optionarg == "true");
11388
    return;
11389
  }
11390
263
  if (name == "strings-exp") {
11391
224
    assign_strings_stringExp(opts, name, optionarg == "true");
11392
224
    return;
11393
  }
11394
39
  if (name == "strings-ff") {
11395
    assign_strings_stringFlatForms(opts, name, optionarg == "true");
11396
    return;
11397
  }
11398
39
  if (name == "strings-fmf") {
11399
26
    assign_strings_stringFMF(opts, name, optionarg == "true");
11400
26
    return;
11401
  }
11402
13
  if (name == "strings-guess-model") {
11403
    assign_strings_stringGuessModel(opts, name, optionarg == "true");
11404
    return;
11405
  }
11406
13
  if (name == "strings-infer-as-lemmas") {
11407
    assign_strings_stringInferAsLemmas(opts, name, optionarg == "true");
11408
    return;
11409
  }
11410
13
  if (name == "strings-infer-sym") {
11411
    assign_strings_stringInferSym(opts, name, optionarg == "true");
11412
    return;
11413
  }
11414
13
  if (name == "strings-lazy-pp") {
11415
11
    assign_strings_stringLazyPreproc(opts, name, optionarg == "true");
11416
11
    return;
11417
  }
11418
2
  if (name == "strings-len-norm") {
11419
    assign_strings_stringLenNorm(opts, name, optionarg == "true");
11420
    return;
11421
  }
11422
2
  if (name == "strings-lprop-csp") {
11423
    assign_strings_stringLenPropCsp(opts, name, optionarg == "true");
11424
    return;
11425
  }
11426
2
  if (name == "strings-min-prefix-explain") {
11427
    assign_strings_stringMinPrefixExplain(opts, name, optionarg == "true");
11428
    return;
11429
  }
11430
2
  if (name == "strings-process-loop-mode") {
11431
    assign_strings_stringProcessLoopMode(opts, name, optionarg);
11432
    return;
11433
  }
11434
2
  if (name == "strings-rexplain-lemmas") {
11435
    assign_strings_stringRExplainLemmas(opts, name, optionarg == "true");
11436
    return;
11437
  }
11438
2
  if (name == "strings-unified-vspt") {
11439
    assign_strings_stringUnifiedVSpt(opts, name, optionarg == "true");
11440
    return;
11441
  }
11442
2
  if (name == "assign-function-values") {
11443
2
    assign_theory_assignFunctionValues(opts, name, optionarg == "true");
11444
2
    return;
11445
  }
11446
  if (name == "condense-function-values") {
11447
    assign_theory_condenseFunctionValues(opts, name, optionarg == "true");
11448
    return;
11449
  }
11450
  if (name == "ee-mode") {
11451
    assign_theory_eeMode(opts, name, optionarg);
11452
    return;
11453
  }
11454
  if (name == "relevance-filter") {
11455
    assign_theory_relevanceFilter(opts, name, optionarg == "true");
11456
    return;
11457
  }
11458
  if (name == "tc-mode") {
11459
    assign_theory_tcMode(opts, name, optionarg);
11460
    return;
11461
  }
11462
  if (name == "theoryof-mode") {
11463
    assign_theory_theoryOfMode(opts, name, optionarg);
11464
    return;
11465
  }
11466
  if (name == "symmetry-breaker" || name == "uf-symmetry-breaker") {
11467
    assign_uf_ufSymmetryBreaker(opts, name, optionarg == "true");
11468
    return;
11469
  }
11470
  if (name == "uf-ho") {
11471
    assign_uf_ufHo(opts, name, optionarg == "true");
11472
    return;
11473
  }
11474
  if (name == "uf-ho-ext") {
11475
    assign_uf_ufHoExt(opts, name, optionarg == "true");
11476
    return;
11477
  }
11478
  if (name == "uf-ss-abort-card") {
11479
    assign_uf_ufssAbortCardinality(opts, name, optionarg);
11480
    return;
11481
  }
11482
  if (name == "uf-ss-fair") {
11483
    assign_uf_ufssFairness(opts, name, optionarg == "true");
11484
    return;
11485
  }
11486
  if (name == "uf-ss-fair-monotone") {
11487
    assign_uf_ufssFairnessMonotone(opts, name, optionarg == "true");
11488
    return;
11489
  }
11490
  if (name == "uf-ss-totality-limited") {
11491
    assign_uf_ufssTotalityLimited(opts, name, optionarg);
11492
    return;
11493
  }
11494
  if (name == "uf-ss-totality-sym-break") {
11495
    assign_uf_ufssTotalitySymBreak(opts, name, optionarg == "true");
11496
    return;
11497
  }
11498
  if (name == "uf-ss") {
11499
    assign_uf_ufssMode(opts, name, optionarg);
11500
    return;
11501
  }
11502
  throw UnrecognizedOptionException(name);
11503
}
11504
11505
9570
void set(Options& opts, const std::string& name, const std::string& optionarg)
11506
{
11507
11508
19140
  Trace("options") << "setOption(" << name << ", " << optionarg << ")"
11509
9570
                   << std::endl;
11510
  // first update this object
11511
9570
  setInternal(opts, name, optionarg);
11512
9568
}
11513
11514
std::vector<std::vector<std::string> > getAll(const Options& opts)
11515
{
11516
  std::vector<std::vector<std::string>> res;
11517
11518
res.push_back({"approx-branch-depth", std::to_string(opts.arith.maxApproxDepth)});
11519
  res.push_back({"arith-brab", opts.arith.brabTest ? "true" : "false"});
11520
  res.push_back({"arith-cong-man", opts.arith.arithCongMan ? "true" : "false"});
11521
  res.push_back({"arith-eq-solver", opts.arith.arithEqSolver ? "true" : "false"});
11522
  res.push_back({"arith-no-partial-fun", opts.arith.arithNoPartialFun ? "true" : "false"});
11523
  res.push_back({"arith-prop-clauses", std::to_string(opts.arith.arithPropAsLemmaLength)});
11524
  { std::stringstream ss; ss << opts.arith.arithPropagationMode; res.push_back({"arith-prop", ss.str()}); }
11525
  res.push_back({"arith-rewrite-equalities", opts.arith.arithRewriteEq ? "true" : "false"});
11526
  res.push_back({"collect-pivot-stats", opts.arith.collectPivots ? "true" : "false"});
11527
  res.push_back({"cut-all-bounded", opts.arith.doCutAllBounded ? "true" : "false"});
11528
  res.push_back({"dio-decomps", opts.arith.exportDioDecompositions ? "true" : "false"});
11529
  res.push_back({"dio-repeat", opts.arith.dioRepeat ? "true" : "false"});
11530
  res.push_back({"dio-solver", opts.arith.arithDioSolver ? "true" : "false"});
11531
  res.push_back({"dio-turns", std::to_string(opts.arith.dioSolverTurns)});
11532
  { std::stringstream ss; ss << opts.arith.arithErrorSelectionRule; res.push_back({"error-selection-rule", ss.str()}); }
11533
  res.push_back({"fc-penalties", opts.arith.havePenalties ? "true" : "false"});
11534
  res.push_back({"heuristic-pivots", std::to_string(opts.arith.arithHeuristicPivots)});
11535
  res.push_back({"lemmas-on-replay-failure", opts.arith.replayFailureLemma ? "true" : "false"});
11536
  res.push_back({"maxCutsInContext", std::to_string(opts.arith.maxCutsInContext)});
11537
  res.push_back({"miplib-trick", opts.arith.arithMLTrick ? "true" : "false"});
11538
  res.push_back({"miplib-trick-subs", std::to_string(opts.arith.arithMLTrickSubstitutions)});
11539
  res.push_back({"new-prop", opts.arith.newProp ? "true" : "false"});
11540
  res.push_back({"nl-cad", opts.arith.nlCad ? "true" : "false"});
11541
  res.push_back({"nl-cad-initial", opts.arith.nlCadUseInitial ? "true" : "false"});
11542
  { std::stringstream ss; ss << opts.arith.nlCadLifting; res.push_back({"nl-cad-lift", ss.str()}); }
11543
  { std::stringstream ss; ss << opts.arith.nlCadProjection; res.push_back({"nl-cad-proj", ss.str()}); }
11544
  res.push_back({"nl-ext-ent-conf", opts.arith.nlExtEntailConflicts ? "true" : "false"});
11545
  res.push_back({"nl-ext-factor", opts.arith.nlExtFactor ? "true" : "false"});
11546
  res.push_back({"nl-ext-inc-prec", opts.arith.nlExtIncPrecision ? "true" : "false"});
11547
  res.push_back({"nl-ext-purify", opts.arith.nlExtPurify ? "true" : "false"});
11548
  res.push_back({"nl-ext-rbound", opts.arith.nlExtResBound ? "true" : "false"});
11549
  res.push_back({"nl-ext-rewrite", opts.arith.nlExtRewrites ? "true" : "false"});
11550
  res.push_back({"nl-ext-split-zero", opts.arith.nlExtSplitZero ? "true" : "false"});
11551
  res.push_back({"nl-ext-tf-taylor-deg", std::to_string(opts.arith.nlExtTfTaylorDegree)});
11552
  res.push_back({"nl-ext-tf-tplanes", opts.arith.nlExtTfTangentPlanes ? "true" : "false"});
11553
  res.push_back({"nl-ext-tplanes", opts.arith.nlExtTangentPlanes ? "true" : "false"});
11554
  res.push_back({"nl-ext-tplanes-interleave", opts.arith.nlExtTangentPlanesInterleave ? "true" : "false"});
11555
  { std::stringstream ss; ss << opts.arith.nlExt; res.push_back({"nl-ext", ss.str()}); }
11556
  res.push_back({"nl-icp", opts.arith.nlICP ? "true" : "false"});
11557
  { std::stringstream ss; ss << opts.arith.nlRlvMode; res.push_back({"nl-rlv", ss.str()}); }
11558
  res.push_back({"pb-rewrites", opts.arith.pbRewrites ? "true" : "false"});
11559
  res.push_back({"pivot-threshold", std::to_string(opts.arith.arithPivotThreshold)});
11560
  res.push_back({"pp-assert-max-sub-size", std::to_string(opts.arith.ppAssertMaxSubSize)});
11561
  res.push_back({"prop-row-length", std::to_string(opts.arith.arithPropagateMaxLength)});
11562
  res.push_back({"replay-early-close-depth", std::to_string(opts.arith.replayEarlyCloseDepths)});
11563
  res.push_back({"replay-failure-penalty", std::to_string(opts.arith.replayFailurePenalty)});
11564
  res.push_back({"replay-lemma-reject-cut", std::to_string(opts.arith.lemmaRejectCutSize)});
11565
  res.push_back({"replay-num-err-penalty", std::to_string(opts.arith.replayNumericFailurePenalty)});
11566
  res.push_back({"replay-reject-cut", std::to_string(opts.arith.replayRejectCutSize)});
11567
  res.push_back({"replay-soi-major-threshold-pen", std::to_string(opts.arith.soiApproxMajorFailurePen)});
11568
  res.push_back({"replay-soi-major-threshold", std::to_string(opts.arith.soiApproxMajorFailure)});
11569
  res.push_back({"replay-soi-minor-threshold-pen", std::to_string(opts.arith.soiApproxMinorFailurePen)});
11570
  res.push_back({"replay-soi-minor-threshold", std::to_string(opts.arith.soiApproxMinorFailure)});
11571
  res.push_back({"restrict-pivots", opts.arith.restrictedPivots ? "true" : "false"});
11572
  res.push_back({"revert-arith-models-on-unsat", opts.arith.revertArithModels ? "true" : "false"});
11573
  res.push_back({"rr-turns", std::to_string(opts.arith.rrTurns)});
11574
  res.push_back({"se-solve-int", opts.arith.trySolveIntStandardEffort ? "true" : "false"});
11575
  res.push_back({"simplex-check-period", std::to_string(opts.arith.arithSimplexCheckPeriod)});
11576
  res.push_back({"soi-qe", opts.arith.soiQuickExplain ? "true" : "false"});
11577
  res.push_back({"standard-effort-variable-order-pivots", std::to_string(opts.arith.arithStandardCheckVarOrderPivots)});
11578
  { std::stringstream ss; ss << opts.arith.arithUnateLemmaMode; res.push_back({"unate-lemmas", ss.str()}); }
11579
  res.push_back({"use-approx", opts.arith.useApprox ? "true" : "false"});
11580
  res.push_back({"use-fcsimplex", opts.arith.useFC ? "true" : "false"});
11581
  res.push_back({"use-soi", opts.arith.useSOI ? "true" : "false"});
11582
  res.push_back({"arrays-config", std::to_string(opts.arrays.arraysConfig)});
11583
  res.push_back({"arrays-eager-index", opts.arrays.arraysEagerIndexSplitting ? "true" : "false"});
11584
  res.push_back({"arrays-eager-lemmas", opts.arrays.arraysEagerLemmas ? "true" : "false"});
11585
  res.push_back({"arrays-exp", opts.arrays.arraysExp ? "true" : "false"});
11586
  res.push_back({"arrays-model-based", opts.arrays.arraysModelBased ? "true" : "false"});
11587
  res.push_back({"arrays-optimize-linear", opts.arrays.arraysOptimizeLinear ? "true" : "false"});
11588
  res.push_back({"arrays-prop", std::to_string(opts.arrays.arraysPropagate)});
11589
  res.push_back({"arrays-reduce-sharing", opts.arrays.arraysReduceSharing ? "true" : "false"});
11590
  res.push_back({"arrays-weak-equiv", opts.arrays.arraysWeakEquivalence ? "true" : "false"});
11591
  { std::stringstream ss; ss << opts.base.err; res.push_back({"err", ss.str()}); }
11592
  { std::stringstream ss; ss << opts.base.in; res.push_back({"in", ss.str()}); }
11593
  res.push_back({"incremental", opts.base.incrementalSolving ? "true" : "false"});
11594
  { std::stringstream ss; ss << opts.base.inputLanguage; res.push_back({"lang", ss.str()}); }
11595
  { std::stringstream ss; ss << opts.base.out; res.push_back({"out", ss.str()}); }
11596
  { std::stringstream ss; ss << opts.base.outputLanguage; res.push_back({"output-lang", ss.str()}); }
11597
  { std::stringstream ss; ss << opts.base.outputTag; res.push_back({"output", ss.str()}); }
11598
  res.push_back({"parse-only", opts.base.parseOnly ? "true" : "false"});
11599
  res.push_back({"preprocess-only", opts.base.preprocessOnly ? "true" : "false"});
11600
  res.push_back({"print-success", opts.base.printSuccess ? "true" : "false"});
11601
  res.push_back({"rlimit-per", std::to_string(opts.base.perCallResourceLimit)});
11602
  res.push_back({"rlimit", std::to_string(opts.base.cumulativeResourceLimit)});
11603
  res.push_back({"stats", opts.base.statistics ? "true" : "false"});
11604
  res.push_back({"stats-all", opts.base.statisticsAll ? "true" : "false"});
11605
  res.push_back({"stats-every-query", opts.base.statisticsEveryQuery ? "true" : "false"});
11606
  res.push_back({"stats-expert", opts.base.statisticsExpert ? "true" : "false"});
11607
  res.push_back({"tlimit-per", std::to_string(opts.base.perCallMillisecondLimit)});
11608
  res.push_back({"tlimit", std::to_string(opts.base.cumulativeMillisecondLimit)});
11609
  res.push_back({"verbosity", std::to_string(opts.base.verbosity)});
11610
  res.push_back({"bitblast-aig", opts.bv.bitvectorAig ? "true" : "false"});
11611
  { std::stringstream ss; ss << opts.bv.bitblastMode; res.push_back({"bitblast", ss.str()}); }
11612
  res.push_back({"bitwise-eq", opts.bv.bitwiseEq ? "true" : "false"});
11613
  { std::stringstream ss; ss << opts.bv.boolToBitvector; res.push_back({"bool-to-bv", ss.str()}); }
11614
  res.push_back({"bv-abstraction", opts.bv.bvAbstraction ? "true" : "false"});
11615
  res.push_back({"bv-aig-simp", opts.bv.bitvectorAigSimplifications});
11616
  res.push_back({"bv-alg-extf", opts.bv.bvAlgExtf ? "true" : "false"});
11617
  res.push_back({"bv-algebraic-budget", std::to_string(opts.bv.bitvectorAlgebraicBudget)});
11618
  res.push_back({"bv-algebraic-solver", opts.bv.bitvectorAlgebraicSolver ? "true" : "false"});
11619
  res.push_back({"bv-assert-input", opts.bv.bvAssertInput ? "true" : "false"});
11620
  res.push_back({"bv-eager-explanations", opts.bv.bvEagerExplanations ? "true" : "false"});
11621
  res.push_back({"bv-eq-solver", opts.bv.bitvectorEqualitySolver ? "true" : "false"});
11622
  res.push_back({"bv-extract-arith", opts.bv.bvExtractArithRewrite ? "true" : "false"});
11623
  res.push_back({"bv-gauss-elim", opts.bv.bvGaussElim ? "true" : "false"});
11624
  res.push_back({"bv-inequality-solver", opts.bv.bitvectorInequalitySolver ? "true" : "false"});
11625
  res.push_back({"bv-intro-pow2", opts.bv.bvIntroducePow2 ? "true" : "false"});
11626
  res.push_back({"bv-num-func", std::to_string(opts.bv.bvNumFunc)});
11627
  res.push_back({"bv-print-consts-as-indexed-symbols", opts.bv.bvPrintConstsAsIndexedSymbols ? "true" : "false"});
11628
  res.push_back({"bv-propagate", opts.bv.bitvectorPropagate ? "true" : "false"});
11629
  res.push_back({"bv-quick-xplain", opts.bv.bitvectorQuickXplain ? "true" : "false"});
11630
  { std::stringstream ss; ss << opts.bv.bvSatSolver; res.push_back({"bv-sat-solver", ss.str()}); }
11631
  res.push_back({"bv-skolemize", opts.bv.skolemizeArguments ? "true" : "false"});
11632
  { std::stringstream ss; ss << opts.bv.bvSolver; res.push_back({"bv-solver", ss.str()}); }
11633
  res.push_back({"bv-to-bool", opts.bv.bitvectorToBool ? "true" : "false"});
11634
  res.push_back({"cdt-bisimilar", opts.datatypes.cdtBisimilar ? "true" : "false"});
11635
  res.push_back({"dt-binary-split", opts.datatypes.dtBinarySplit ? "true" : "false"});
11636
  res.push_back({"dt-blast-splits", opts.datatypes.dtBlastSplits ? "true" : "false"});
11637
  res.push_back({"dt-cyclic", opts.datatypes.dtCyclic ? "true" : "false"});
11638
  res.push_back({"dt-force-assignment", opts.datatypes.dtForceAssignment ? "true" : "false"});
11639
  res.push_back({"dt-infer-as-lemmas", opts.datatypes.dtInferAsLemmas ? "true" : "false"});
11640
  res.push_back({"dt-nested-rec", opts.datatypes.dtNestedRec ? "true" : "false"});
11641
  res.push_back({"dt-polite-optimize", opts.datatypes.dtPoliteOptimize ? "true" : "false"});
11642
  res.push_back({"dt-rewrite-error-sel", opts.datatypes.dtRewriteErrorSel ? "true" : "false"});
11643
  res.push_back({"dt-share-sel", opts.datatypes.dtSharedSelectors ? "true" : "false"});
11644
  res.push_back({"sygus-abort-size", std::to_string(opts.datatypes.sygusAbortSize)});
11645
  res.push_back({"sygus-fair-max", opts.datatypes.sygusFairMax ? "true" : "false"});
11646
  { std::stringstream ss; ss << opts.datatypes.sygusFair; res.push_back({"sygus-fair", ss.str()}); }
11647
  res.push_back({"sygus-sym-break", opts.datatypes.sygusSymBreak ? "true" : "false"});
11648
  res.push_back({"sygus-sym-break-agg", opts.datatypes.sygusSymBreakAgg ? "true" : "false"});
11649
  res.push_back({"sygus-sym-break-dynamic", opts.datatypes.sygusSymBreakDynamic ? "true" : "false"});
11650
  res.push_back({"sygus-sym-break-lazy", opts.datatypes.sygusSymBreakLazy ? "true" : "false"});
11651
  res.push_back({"sygus-sym-break-pbe", opts.datatypes.sygusSymBreakPbe ? "true" : "false"});
11652
  res.push_back({"sygus-sym-break-rlv", opts.datatypes.sygusSymBreakRlv ? "true" : "false"});
11653
  res.push_back({"decision-random-weight", std::to_string(opts.decision.decisionRandomWeight)});
11654
  { std::stringstream ss; ss << opts.decision.decisionThreshold; res.push_back({"decision-threshold", ss.str()}); }
11655
  res.push_back({"decision-use-weight", opts.decision.decisionUseWeight ? "true" : "false"});
11656
  { std::stringstream ss; ss << opts.decision.decisionWeightInternal; res.push_back({"decision-weight-internal", ss.str()}); }
11657
  { std::stringstream ss; ss << opts.decision.decisionMode; res.push_back({"decision", ss.str()}); }
11658
  res.push_back({"jh-rlv-order", opts.decision.jhRlvOrder ? "true" : "false"});
11659
  { std::stringstream ss; ss << opts.decision.jhSkolemRlvMode; res.push_back({"jh-skolem-rlv", ss.str()}); }
11660
  { std::stringstream ss; ss << opts.decision.jhSkolemMode; res.push_back({"jh-skolem", ss.str()}); }
11661
  res.push_back({"dag-thresh", std::to_string(opts.expr.defaultDagThresh)});
11662
  res.push_back({"expr-depth", std::to_string(opts.expr.defaultExprDepth)});
11663
  res.push_back({"type-checking", opts.expr.typeChecking ? "true" : "false"});
11664
  res.push_back({"fp-exp", opts.fp.fpExp ? "true" : "false"});
11665
  res.push_back({"fp-lazy-wb", opts.fp.fpLazyWb ? "true" : "false"});
11666
  res.push_back({"dump-instantiations", opts.driver.dumpInstantiations ? "true" : "false"});
11667
  res.push_back({"dump-instantiations-debug", opts.driver.dumpInstantiationsDebug ? "true" : "false"});
11668
  res.push_back({"dump-models", opts.driver.dumpModels ? "true" : "false"});
11669
  res.push_back({"dump-proofs", opts.driver.dumpProofs ? "true" : "false"});
11670
  res.push_back({"dump-unsat-cores", opts.driver.dumpUnsatCores ? "true" : "false"});
11671
  res.push_back({"dump-unsat-cores-full", opts.driver.dumpUnsatCoresFull ? "true" : "false"});
11672
  res.push_back({"early-exit", opts.driver.earlyExit ? "true" : "false"});
11673
  res.push_back({"force-no-limit-cpu-while-dump", opts.driver.forceNoLimitCpuWhileDump ? "true" : "false"});
11674
  res.push_back({"help", opts.driver.help ? "true" : "false"});
11675
  res.push_back({"interactive", opts.driver.interactive ? "true" : "false"});
11676
  res.push_back({"interactive-prompt", opts.driver.interactivePrompt ? "true" : "false"});
11677
  res.push_back({"seed", std::to_string(opts.driver.seed)});
11678
  res.push_back({"segv-spin", opts.driver.segvSpin ? "true" : "false"});
11679
  res.push_back({"version", opts.driver.version ? "true" : "false"});
11680
  res.push_back({"filesystem-access", opts.parser.filesystemAccess ? "true" : "false"});
11681
  res.push_back({"force-logic", opts.parser.forceLogicString});
11682
  res.push_back({"global-declarations", opts.parser.globalDeclarations ? "true" : "false"});
11683
  res.push_back({"mmap", opts.parser.memoryMap ? "true" : "false"});
11684
  res.push_back({"semantic-checks", opts.parser.semanticChecks ? "true" : "false"});
11685
  res.push_back({"strict-parsing", opts.parser.strictParsing ? "true" : "false"});
11686
  res.push_back({"flatten-ho-chains", opts.printer.flattenHOChains ? "true" : "false"});
11687
  { std::stringstream ss; ss << opts.printer.instFormatMode; res.push_back({"inst-format", ss.str()}); }
11688
  { std::stringstream ss; ss << opts.printer.modelFormatMode; res.push_back({"model-format", ss.str()}); }
11689
  res.push_back({"print-inst-full", opts.printer.printInstFull ? "true" : "false"});
11690
  { std::stringstream ss; ss << opts.printer.printInstMode; res.push_back({"print-inst", ss.str()}); }
11691
  res.push_back({"proof-eager-checking", opts.proof.proofEagerChecking ? "true" : "false"});
11692
  { std::stringstream ss; ss << opts.proof.proofFormatMode; res.push_back({"proof-format-mode", ss.str()}); }
11693
  { std::stringstream ss; ss << opts.proof.proofGranularityMode; res.push_back({"proof-granularity", ss.str()}); }
11694
  res.push_back({"proof-pedantic", std::to_string(opts.proof.proofPedantic)});
11695
  res.push_back({"proof-print-conclusion", opts.proof.proofPrintConclusion ? "true" : "false"});
11696
  res.push_back({"minisat-dump-dimacs", opts.prop.minisatDumpDimacs ? "true" : "false"});
11697
  res.push_back({"minisat-elimination", opts.prop.minisatUseElim ? "true" : "false"});
11698
  res.push_back({"random-freq", std::to_string(opts.prop.satRandomFreq)});
11699
  res.push_back({"random-seed", std::to_string(opts.prop.satRandomSeed)});
11700
  res.push_back({"refine-conflicts", opts.prop.sat_refine_conflicts ? "true" : "false"});
11701
  res.push_back({"restart-int-base", std::to_string(opts.prop.satRestartFirst)});
11702
  res.push_back({"restart-int-inc", std::to_string(opts.prop.satRestartInc)});
11703
  res.push_back({"ag-miniscope-quant", opts.quantifiers.aggressiveMiniscopeQuant ? "true" : "false"});
11704
  { std::stringstream ss; ss << opts.quantifiers.cegisSample; res.push_back({"cegis-sample", ss.str()}); }
11705
  res.push_back({"cegqi", opts.quantifiers.cegqi ? "true" : "false"});
11706
  res.push_back({"cegqi-all", opts.quantifiers.cegqiAll ? "true" : "false"});
11707
  res.push_back({"cegqi-bv", opts.quantifiers.cegqiBv ? "true" : "false"});
11708
  res.push_back({"cegqi-bv-concat-inv", opts.quantifiers.cegqiBvConcInv ? "true" : "false"});
11709
  { std::stringstream ss; ss << opts.quantifiers.cegqiBvIneqMode; res.push_back({"cegqi-bv-ineq", ss.str()}); }
11710
  res.push_back({"cegqi-bv-interleave-value", opts.quantifiers.cegqiBvInterleaveValue ? "true" : "false"});
11711
  res.push_back({"cegqi-bv-linear", opts.quantifiers.cegqiBvLinearize ? "true" : "false"});
11712
  res.push_back({"cegqi-bv-rm-extract", opts.quantifiers.cegqiBvRmExtract ? "true" : "false"});
11713
  res.push_back({"cegqi-bv-solve-nl", opts.quantifiers.cegqiBvSolveNl ? "true" : "false"});
11714
  res.push_back({"cegqi-full", opts.quantifiers.cegqiFullEffort ? "true" : "false"});
11715
  res.push_back({"cegqi-innermost", opts.quantifiers.cegqiInnermost ? "true" : "false"});
11716
  res.push_back({"cegqi-midpoint", opts.quantifiers.cegqiMidpoint ? "true" : "false"});
11717
  res.push_back({"cegqi-min-bounds", opts.quantifiers.cegqiMinBounds ? "true" : "false"});
11718
  res.push_back({"cegqi-model", opts.quantifiers.cegqiModel ? "true" : "false"});
11719
  res.push_back({"cegqi-multi-inst", opts.quantifiers.cegqiMultiInst ? "true" : "false"});
11720
  res.push_back({"cegqi-nested-qe", opts.quantifiers.cegqiNestedQE ? "true" : "false"});
11721
  res.push_back({"cegqi-nopt", opts.quantifiers.cegqiNopt ? "true" : "false"});
11722
  res.push_back({"cegqi-repeat-lit", opts.quantifiers.cegqiRepeatLit ? "true" : "false"});
11723
  res.push_back({"cegqi-round-up-lia", opts.quantifiers.cegqiRoundUpLowerLia ? "true" : "false"});
11724
  res.push_back({"cegqi-sat", opts.quantifiers.cegqiSat ? "true" : "false"});
11725
  res.push_back({"cegqi-use-inf-int", opts.quantifiers.cegqiUseInfInt ? "true" : "false"});
11726
  res.push_back({"cegqi-use-inf-real", opts.quantifiers.cegqiUseInfReal ? "true" : "false"});
11727
  res.push_back({"cond-var-split-agg-quant", opts.quantifiers.condVarSplitQuantAgg ? "true" : "false"});
11728
  res.push_back({"cond-var-split-quant", opts.quantifiers.condVarSplitQuant ? "true" : "false"});
11729
  res.push_back({"conjecture-filter-active-terms", opts.quantifiers.conjectureFilterActiveTerms ? "true" : "false"});
11730
  res.push_back({"conjecture-filter-canonical", opts.quantifiers.conjectureFilterCanonical ? "true" : "false"});
11731
  res.push_back({"conjecture-filter-model", opts.quantifiers.conjectureFilterModel ? "true" : "false"});
11732
  res.push_back({"conjecture-gen", opts.quantifiers.conjectureGen ? "true" : "false"});
11733
  res.push_back({"conjecture-gen-gt-enum", std::to_string(opts.quantifiers.conjectureGenGtEnum)});
11734
  res.push_back({"conjecture-gen-max-depth", std::to_string(opts.quantifiers.conjectureGenMaxDepth)});
11735
  res.push_back({"conjecture-gen-per-round", std::to_string(opts.quantifiers.conjectureGenPerRound)});
11736
  res.push_back({"conjecture-gen-uee-intro", opts.quantifiers.conjectureUeeIntro ? "true" : "false"});
11737
  res.push_back({"conjecture-no-filter", opts.quantifiers.conjectureNoFilter ? "true" : "false"});
11738
  res.push_back({"dt-stc-ind", opts.quantifiers.dtStcInduction ? "true" : "false"});
11739
  res.push_back({"dt-var-exp-quant", opts.quantifiers.dtVarExpandQuant ? "true" : "false"});
11740
  res.push_back({"e-matching", opts.quantifiers.eMatching ? "true" : "false"});
11741
  res.push_back({"elim-taut-quant", opts.quantifiers.elimTautQuant ? "true" : "false"});
11742
  res.push_back({"ext-rewrite-quant", opts.quantifiers.extRewriteQuant ? "true" : "false"});
11743
  res.push_back({"finite-model-find", opts.quantifiers.finiteModelFind ? "true" : "false"});
11744
  res.push_back({"fmf-bound", opts.quantifiers.fmfBound ? "true" : "false"});
11745
  res.push_back({"fmf-bound-int", opts.quantifiers.fmfBoundInt ? "true" : "false"});
11746
  res.push_back({"fmf-bound-lazy", opts.quantifiers.fmfBoundLazy ? "true" : "false"});
11747
  res.push_back({"fmf-fmc-simple", opts.quantifiers.fmfFmcSimple ? "true" : "false"});
11748
  res.push_back({"fmf-fresh-dc", opts.quantifiers.fmfFreshDistConst ? "true" : "false"});
11749
  res.push_back({"fmf-fun", opts.quantifiers.fmfFunWellDefined ? "true" : "false"});
11750
  res.push_back({"fmf-fun-rlv", opts.quantifiers.fmfFunWellDefinedRelevant ? "true" : "false"});
11751
  res.push_back({"fmf-inst-engine", opts.quantifiers.fmfInstEngine ? "true" : "false"});
11752
  res.push_back({"fmf-type-completion-thresh", std::to_string(opts.quantifiers.fmfTypeCompletionThresh)});
11753
  res.push_back({"fs-interleave", opts.quantifiers.fullSaturateInterleave ? "true" : "false"});
11754
  res.push_back({"fs-stratify", opts.quantifiers.fullSaturateStratify ? "true" : "false"});
11755
  res.push_back({"fs-sum", opts.quantifiers.fullSaturateSum ? "true" : "false"});
11756
  res.push_back({"full-saturate-quant", opts.quantifiers.fullSaturateQuant ? "true" : "false"});
11757
  res.push_back({"full-saturate-quant-limit", std::to_string(opts.quantifiers.fullSaturateLimit)});
11758
  res.push_back({"full-saturate-quant-rd", opts.quantifiers.fullSaturateQuantRd ? "true" : "false"});
11759
  res.push_back({"global-negate", opts.quantifiers.globalNegate ? "true" : "false"});
11760
  res.push_back({"ho-elim", opts.quantifiers.hoElim ? "true" : "false"});
11761
  res.push_back({"ho-elim-store-ax", opts.quantifiers.hoElimStoreAx ? "true" : "false"});
11762
  res.push_back({"ho-matching", opts.quantifiers.hoMatching ? "true" : "false"});
11763
  res.push_back({"ho-matching-var-priority", opts.quantifiers.hoMatchingVarArgPriority ? "true" : "false"});
11764
  res.push_back({"ho-merge-term-db", opts.quantifiers.hoMergeTermDb ? "true" : "false"});
11765
  res.push_back({"increment-triggers", opts.quantifiers.incrementTriggers ? "true" : "false"});
11766
  res.push_back({"inst-level-input-only", opts.quantifiers.instLevelInputOnly ? "true" : "false"});
11767
  res.push_back({"inst-max-level", std::to_string(opts.quantifiers.instMaxLevel)});
11768
  res.push_back({"inst-max-rounds", std::to_string(opts.quantifiers.instMaxRounds)});
11769
  res.push_back({"inst-no-entail", opts.quantifiers.instNoEntail ? "true" : "false"});
11770
  res.push_back({"inst-when-phase", std::to_string(opts.quantifiers.instWhenPhase)});
11771
  res.push_back({"inst-when-strict-interleave", opts.quantifiers.instWhenStrictInterleave ? "true" : "false"});
11772
  res.push_back({"inst-when-tc-first", opts.quantifiers.instWhenTcFirst ? "true" : "false"});
11773
  { std::stringstream ss; ss << opts.quantifiers.instWhenMode; res.push_back({"inst-when", ss.str()}); }
11774
  res.push_back({"int-wf-ind", opts.quantifiers.intWfInduction ? "true" : "false"});
11775
  res.push_back({"ite-dtt-split-quant", opts.quantifiers.iteDtTesterSplitQuant ? "true" : "false"});
11776
  { std::stringstream ss; ss << opts.quantifiers.iteLiftQuant; res.push_back({"ite-lift-quant", ss.str()}); }
11777
  { std::stringstream ss; ss << opts.quantifiers.literalMatchMode; res.push_back({"literal-matching", ss.str()}); }
11778
  res.push_back({"macros-quant", opts.quantifiers.macrosQuant ? "true" : "false"});
11779
  { std::stringstream ss; ss << opts.quantifiers.macrosQuantMode; res.push_back({"macros-quant-mode", ss.str()}); }
11780
  res.push_back({"mbqi-interleave", opts.quantifiers.mbqiInterleave ? "true" : "false"});
11781
  res.push_back({"mbqi-one-inst-per-round", opts.quantifiers.fmfOneInstPerRound ? "true" : "false"});
11782
  { std::stringstream ss; ss << opts.quantifiers.mbqiMode; res.push_back({"mbqi", ss.str()}); }
11783
  res.push_back({"miniscope-quant", opts.quantifiers.miniscopeQuant ? "true" : "false"});
11784
  res.push_back({"miniscope-quant-fv", opts.quantifiers.miniscopeQuantFreeVar ? "true" : "false"});
11785
  res.push_back({"multi-trigger-cache", opts.quantifiers.multiTriggerCache ? "true" : "false"});
11786
  res.push_back({"multi-trigger-linear", opts.quantifiers.multiTriggerLinear ? "true" : "false"});
11787
  res.push_back({"multi-trigger-priority", opts.quantifiers.multiTriggerPriority ? "true" : "false"});
11788
  res.push_back({"multi-trigger-when-single", opts.quantifiers.multiTriggerWhenSingle ? "true" : "false"});
11789
  res.push_back({"partial-triggers", opts.quantifiers.partialTriggers ? "true" : "false"});
11790
  res.push_back({"pool-inst", opts.quantifiers.poolInst ? "true" : "false"});
11791
  res.push_back({"pre-skolem-quant", opts.quantifiers.preSkolemQuant ? "true" : "false"});
11792
  res.push_back({"pre-skolem-quant-agg", opts.quantifiers.preSkolemQuantAgg ? "true" : "false"});
11793
  res.push_back({"pre-skolem-quant-nested", opts.quantifiers.preSkolemQuantNested ? "true" : "false"});
11794
  res.push_back({"prenex-quant-user", opts.quantifiers.prenexQuantUser ? "true" : "false"});
11795
  { std::stringstream ss; ss << opts.quantifiers.prenexQuant; res.push_back({"prenex-quant", ss.str()}); }
11796
  res.push_back({"purify-triggers", opts.quantifiers.purifyTriggers ? "true" : "false"});
11797
  res.push_back({"qcf-all-conflict", opts.quantifiers.qcfAllConflict ? "true" : "false"});
11798
  res.push_back({"qcf-eager-check-rd", opts.quantifiers.qcfEagerCheckRd ? "true" : "false"});
11799
  res.push_back({"qcf-eager-test", opts.quantifiers.qcfEagerTest ? "true" : "false"});
11800
  res.push_back({"qcf-nested-conflict", opts.quantifiers.qcfNestedConflict ? "true" : "false"});
11801
  res.push_back({"qcf-skip-rd", opts.quantifiers.qcfSkipRd ? "true" : "false"});
11802
  res.push_back({"qcf-tconstraint", opts.quantifiers.qcfTConstraint ? "true" : "false"});
11803
  res.push_back({"qcf-vo-exp", opts.quantifiers.qcfVoExp ? "true" : "false"});
11804
  res.push_back({"quant-alpha-equiv", opts.quantifiers.quantAlphaEquiv ? "true" : "false"});
11805
  res.push_back({"quant-cf", opts.quantifiers.quantConflictFind ? "true" : "false"});
11806
  { std::stringstream ss; ss << opts.quantifiers.qcfMode; res.push_back({"quant-cf-mode", ss.str()}); }
11807
  { std::stringstream ss; ss << opts.quantifiers.qcfWhenMode; res.push_back({"quant-cf-when", ss.str()}); }
11808
  { std::stringstream ss; ss << opts.quantifiers.quantDynamicSplit; res.push_back({"quant-dsplit-mode", ss.str()}); }
11809
  res.push_back({"quant-fun-wd", opts.quantifiers.quantFunWellDefined ? "true" : "false"});
11810
  res.push_back({"quant-ind", opts.quantifiers.quantInduction ? "true" : "false"});
11811
  { std::stringstream ss; ss << opts.quantifiers.quantRepMode; res.push_back({"quant-rep-mode", ss.str()}); }
11812
  res.push_back({"quant-split", opts.quantifiers.quantSplit ? "true" : "false"});
11813
  res.push_back({"register-quant-body-terms", opts.quantifiers.registerQuantBodyTerms ? "true" : "false"});
11814
  res.push_back({"relational-triggers", opts.quantifiers.relationalTriggers ? "true" : "false"});
11815
  res.push_back({"relevant-triggers", opts.quantifiers.relevantTriggers ? "true" : "false"});
11816
  res.push_back({"strict-triggers", opts.quantifiers.strictTriggers ? "true" : "false"});
11817
  res.push_back({"sygus", opts.quantifiers.sygus ? "true" : "false"});
11818
  res.push_back({"sygus-active-gen-cfactor", std::to_string(opts.quantifiers.sygusActiveGenEnumConsts)});
11819
  { std::stringstream ss; ss << opts.quantifiers.sygusActiveGenMode; res.push_back({"sygus-active-gen", ss.str()}); }
11820
  res.push_back({"sygus-add-const-grammar", opts.quantifiers.sygusAddConstGrammar ? "true" : "false"});
11821
  res.push_back({"sygus-arg-relevant", opts.quantifiers.sygusArgRelevant ? "true" : "false"});
11822
  res.push_back({"sygus-auto-unfold", opts.quantifiers.sygusInvAutoUnfold ? "true" : "false"});
11823
  res.push_back({"sygus-bool-ite-return-const", opts.quantifiers.sygusBoolIteReturnConst ? "true" : "false"});
11824
  res.push_back({"sygus-core-connective", opts.quantifiers.sygusCoreConnective ? "true" : "false"});
11825
  res.push_back({"sygus-crepair-abort", opts.quantifiers.sygusConstRepairAbort ? "true" : "false"});
11826
  res.push_back({"sygus-eval-opt", opts.quantifiers.sygusEvalOpt ? "true" : "false"});
11827
  res.push_back({"sygus-eval-unfold", opts.quantifiers.sygusEvalUnfold ? "true" : "false"});
11828
  res.push_back({"sygus-eval-unfold-bool", opts.quantifiers.sygusEvalUnfoldBool ? "true" : "false"});
11829
  res.push_back({"sygus-expr-miner-check-timeout", std::to_string(opts.quantifiers.sygusExprMinerCheckTimeout)});
11830
  res.push_back({"sygus-ext-rew", opts.quantifiers.sygusExtRew ? "true" : "false"});
11831
  res.push_back({"sygus-filter-sol-rev", opts.quantifiers.sygusFilterSolRevSubsume ? "true" : "false"});
11832
  { std::stringstream ss; ss << opts.quantifiers.sygusFilterSolMode; res.push_back({"sygus-filter-sol", ss.str()}); }
11833
  { std::stringstream ss; ss << opts.quantifiers.sygusGrammarConsMode; res.push_back({"sygus-grammar-cons", ss.str()}); }
11834
  res.push_back({"sygus-grammar-norm", opts.quantifiers.sygusGrammarNorm ? "true" : "false"});
11835
  res.push_back({"sygus-inference", opts.quantifiers.sygusInference ? "true" : "false"});
11836
  res.push_back({"sygus-inst", opts.quantifiers.sygusInst ? "true" : "false"});
11837
  { std::stringstream ss; ss << opts.quantifiers.sygusInstMode; res.push_back({"sygus-inst-mode", ss.str()}); }
11838
  { std::stringstream ss; ss << opts.quantifiers.sygusInstScope; res.push_back({"sygus-inst-scope", ss.str()}); }
11839
  { std::stringstream ss; ss << opts.quantifiers.sygusInstTermSel; res.push_back({"sygus-inst-term-sel", ss.str()}); }
11840
  res.push_back({"sygus-inv-templ-when-sg", opts.quantifiers.sygusInvTemplWhenSyntax ? "true" : "false"});
11841
  { std::stringstream ss; ss << opts.quantifiers.sygusInvTemplMode; res.push_back({"sygus-inv-templ", ss.str()}); }
11842
  res.push_back({"sygus-min-grammar", opts.quantifiers.sygusMinGrammar ? "true" : "false"});
11843
  res.push_back({"sygus-pbe", opts.quantifiers.sygusUnifPbe ? "true" : "false"});
11844
  res.push_back({"sygus-pbe-multi-fair", opts.quantifiers.sygusPbeMultiFair ? "true" : "false"});
11845
  res.push_back({"sygus-pbe-multi-fair-diff", std::to_string(opts.quantifiers.sygusPbeMultiFairDiff)});
11846
  res.push_back({"sygus-qe-preproc", opts.quantifiers.sygusQePreproc ? "true" : "false"});
11847
  res.push_back({"sygus-query-gen", opts.quantifiers.sygusQueryGen ? "true" : "false"});
11848
  res.push_back({"sygus-query-gen-check", opts.quantifiers.sygusQueryGenCheck ? "true" : "false"});
11849
  { std::stringstream ss; ss << opts.quantifiers.sygusQueryGenDumpFiles; res.push_back({"sygus-query-gen-dump-files", ss.str()}); }
11850
  res.push_back({"sygus-query-gen-thresh", std::to_string(opts.quantifiers.sygusQueryGenThresh)});
11851
  res.push_back({"sygus-rec-fun", opts.quantifiers.sygusRecFun ? "true" : "false"});
11852
  res.push_back({"sygus-rec-fun-eval-limit", std::to_string(opts.quantifiers.sygusRecFunEvalLimit)});
11853
  res.push_back({"sygus-repair-const", opts.quantifiers.sygusRepairConst ? "true" : "false"});
11854
  res.push_back({"sygus-repair-const-timeout", std::to_string(opts.quantifiers.sygusRepairConstTimeout)});
11855
  res.push_back({"sygus-rr", opts.quantifiers.sygusRew ? "true" : "false"});
11856
  res.push_back({"sygus-rr-synth", opts.quantifiers.sygusRewSynth ? "true" : "false"});
11857
  res.push_back({"sygus-rr-synth-accel", opts.quantifiers.sygusRewSynthAccel ? "true" : "false"});
11858
  res.push_back({"sygus-rr-synth-check", opts.quantifiers.sygusRewSynthCheck ? "true" : "false"});
11859
  res.push_back({"sygus-rr-synth-filter-cong", opts.quantifiers.sygusRewSynthFilterCong ? "true" : "false"});
11860
  res.push_back({"sygus-rr-synth-filter-match", opts.quantifiers.sygusRewSynthFilterMatch ? "true" : "false"});
11861
  res.push_back({"sygus-rr-synth-filter-nl", opts.quantifiers.sygusRewSynthFilterNonLinear ? "true" : "false"});
11862
  res.push_back({"sygus-rr-synth-filter-order", opts.quantifiers.sygusRewSynthFilterOrder ? "true" : "false"});
11863
  res.push_back({"sygus-rr-synth-input", opts.quantifiers.sygusRewSynthInput ? "true" : "false"});
11864
  res.push_back({"sygus-rr-synth-input-nvars", std::to_string(opts.quantifiers.sygusRewSynthInputNVars)});
11865
  res.push_back({"sygus-rr-synth-input-use-bool", opts.quantifiers.sygusRewSynthInputUseBool ? "true" : "false"});
11866
  res.push_back({"sygus-rr-synth-rec", opts.quantifiers.sygusRewSynthRec ? "true" : "false"});
11867
  res.push_back({"sygus-rr-verify", opts.quantifiers.sygusRewVerify ? "true" : "false"});
11868
  res.push_back({"sygus-rr-verify-abort", opts.quantifiers.sygusRewVerifyAbort ? "true" : "false"});
11869
  res.push_back({"sygus-sample-fp-uniform", opts.quantifiers.sygusSampleFpUniform ? "true" : "false"});
11870
  res.push_back({"sygus-sample-grammar", opts.quantifiers.sygusSampleGrammar ? "true" : "false"});
11871
  res.push_back({"sygus-samples", std::to_string(opts.quantifiers.sygusSamples)});
11872
  res.push_back({"sygus-si-abort", opts.quantifiers.cegqiSingleInvAbort ? "true" : "false"});
11873
  res.push_back({"sygus-si-partial", opts.quantifiers.cegqiSingleInvPartial ? "true" : "false"});
11874
  res.push_back({"sygus-si-rcons-limit", std::to_string(opts.quantifiers.cegqiSingleInvReconstructLimit)});
11875
  { std::stringstream ss; ss << opts.quantifiers.cegqiSingleInvReconstruct; res.push_back({"sygus-si-rcons", ss.str()}); }
11876
  res.push_back({"sygus-si-reconstruct-const", opts.quantifiers.cegqiSingleInvReconstructConst ? "true" : "false"});
11877
  { std::stringstream ss; ss << opts.quantifiers.cegqiSingleInvMode; res.push_back({"sygus-si", ss.str()}); }
11878
  res.push_back({"sygus-stream", opts.quantifiers.sygusStream ? "true" : "false"});
11879
  res.push_back({"sygus-templ-embed-grammar", opts.quantifiers.sygusTemplEmbedGrammar ? "true" : "false"});
11880
  res.push_back({"sygus-unif-cond-independent-no-repeat-sol", opts.quantifiers.sygusUnifCondIndNoRepeatSol ? "true" : "false"});
11881
  { std::stringstream ss; ss << opts.quantifiers.sygusUnifPi; res.push_back({"sygus-unif-pi", ss.str()}); }
11882
  res.push_back({"sygus-unif-shuffle-cond", opts.quantifiers.sygusUnifShuffleCond ? "true" : "false"});
11883
  res.push_back({"sygus-verify-inst-max-rounds", std::to_string(opts.quantifiers.sygusVerifyInstMaxRounds)});
11884
  res.push_back({"term-db-cd", opts.quantifiers.termDbCd ? "true" : "false"});
11885
  { std::stringstream ss; ss << opts.quantifiers.termDbMode; res.push_back({"term-db-mode", ss.str()}); }
11886
  { std::stringstream ss; ss << opts.quantifiers.triggerActiveSelMode; res.push_back({"trigger-active-sel", ss.str()}); }
11887
  { std::stringstream ss; ss << opts.quantifiers.triggerSelMode; res.push_back({"trigger-sel", ss.str()}); }
11888
  { std::stringstream ss; ss << opts.quantifiers.userPatternsQuant; res.push_back({"user-pat", ss.str()}); }
11889
  res.push_back({"var-elim-quant", opts.quantifiers.varElimQuant ? "true" : "false"});
11890
  res.push_back({"var-ineq-elim-quant", opts.quantifiers.varIneqElimQuant ? "true" : "false"});
11891
  res.push_back({"sep-check-neg", opts.sep.sepCheckNeg ? "true" : "false"});
11892
  res.push_back({"sep-child-refine", opts.sep.sepChildRefine ? "true" : "false"});
11893
  res.push_back({"sep-deq-c", opts.sep.sepDisequalC ? "true" : "false"});
11894
  res.push_back({"sep-exp", opts.sep.sepExp ? "true" : "false"});
11895
  res.push_back({"sep-min-refine", opts.sep.sepMinimalRefine ? "true" : "false"});
11896
  res.push_back({"sep-pre-skolem-emp", opts.sep.sepPreSkolemEmp ? "true" : "false"});
11897
  res.push_back({"sets-ext", opts.sets.setsExt ? "true" : "false"});
11898
  res.push_back({"sets-infer-as-lemmas", opts.sets.setsInferAsLemmas ? "true" : "false"});
11899
  res.push_back({"sets-proxy-lemmas", opts.sets.setsProxyLemmas ? "true" : "false"});
11900
  res.push_back({"abstract-values", opts.smt.abstractValues ? "true" : "false"});
11901
  res.push_back({"ackermann", opts.smt.ackermann ? "true" : "false"});
11902
  { std::stringstream ss; ss << opts.smt.blockModelsMode; res.push_back({"block-models", ss.str()}); }
11903
  res.push_back({"bvand-integer-granularity", std::to_string(opts.smt.BVAndIntegerGranularity)});
11904
  res.push_back({"check-abducts", opts.smt.checkAbducts ? "true" : "false"});
11905
  res.push_back({"check-interpols", opts.smt.checkInterpols ? "true" : "false"});
11906
  res.push_back({"check-models", opts.smt.checkModels ? "true" : "false"});
11907
  res.push_back({"check-proofs", opts.smt.checkProofs ? "true" : "false"});
11908
  res.push_back({"check-synth-sol", opts.smt.checkSynthSol ? "true" : "false"});
11909
  res.push_back({"check-unsat-cores", opts.smt.checkUnsatCores ? "true" : "false"});
11910
  res.push_back({"debug-check-models", opts.smt.debugCheckModels ? "true" : "false"});
11911
  { std::stringstream ss; ss << opts.smt.dumpToFileName; res.push_back({"dump-to", ss.str()}); }
11912
  res.push_back({"dump", opts.smt.dumpModeString});
11913
  res.push_back({"early-ite-removal", opts.smt.earlyIteRemoval ? "true" : "false"});
11914
  res.push_back({"expand-definitions", opts.smt.expandDefinitions ? "true" : "false"});
11915
  res.push_back({"ext-rew-prep", opts.smt.extRewPrep ? "true" : "false"});
11916
  res.push_back({"ext-rew-prep-agg", opts.smt.extRewPrepAgg ? "true" : "false"});
11917
  res.push_back({"foreign-theory-rewrite", opts.smt.foreignTheoryRewrite ? "true" : "false"});
11918
  { std::stringstream ss; ss << opts.smt.iandMode; res.push_back({"iand-mode", ss.str()}); }
11919
  res.push_back({"interactive-mode", opts.smt.interactiveMode ? "true" : "false"});
11920
  res.push_back({"ite-simp", opts.smt.doITESimp ? "true" : "false"});
11921
  res.push_back({"learned-rewrite", opts.smt.learnedRewrite ? "true" : "false"});
11922
  res.push_back({"minimal-unsat-cores", opts.smt.minimalUnsatCores ? "true" : "false"});
11923
  { std::stringstream ss; ss << opts.smt.modelCoresMode; res.push_back({"model-cores", ss.str()}); }
11924
  { std::stringstream ss; ss << opts.smt.modelUninterpPrint; res.push_back({"model-u-print", ss.str()}); }
11925
  res.push_back({"model-witness-value", opts.smt.modelWitnessValue ? "true" : "false"});
11926
  res.push_back({"on-repeat-ite-simp", opts.smt.doITESimpOnRepeat ? "true" : "false"});
11927
  res.push_back({"produce-abducts", opts.smt.produceAbducts ? "true" : "false"});
11928
  res.push_back({"produce-assertions", opts.smt.produceAssertions ? "true" : "false"});
11929
  res.push_back({"produce-assignments", opts.smt.produceAssignments ? "true" : "false"});
11930
  { std::stringstream ss; ss << opts.smt.produceInterpols; res.push_back({"produce-interpols", ss.str()}); }
11931
  res.push_back({"produce-models", opts.smt.produceModels ? "true" : "false"});
11932
  res.push_back({"produce-proofs", opts.smt.produceProofs ? "true" : "false"});
11933
  res.push_back({"produce-unsat-assumptions", opts.smt.unsatAssumptions ? "true" : "false"});
11934
  res.push_back({"produce-unsat-cores", opts.smt.unsatCores ? "true" : "false"});
11935
  res.push_back({"repeat-simp", opts.smt.repeatSimp ? "true" : "false"});
11936
  res.push_back({"simp-ite-compress", opts.smt.compressItes ? "true" : "false"});
11937
  res.push_back({"simp-ite-hunt-zombies", std::to_string(opts.smt.zombieHuntThreshold)});
11938
  res.push_back({"simp-with-care", opts.smt.simplifyWithCareEnabled ? "true" : "false"});
11939
  { std::stringstream ss; ss << opts.smt.simplificationMode; res.push_back({"simplification", ss.str()}); }
11940
  { std::stringstream ss; ss << opts.smt.solveBVAsInt; res.push_back({"solve-bv-as-int", ss.str()}); }
11941
  res.push_back({"solve-int-as-bv", std::to_string(opts.smt.solveIntAsBV)});
11942
  res.push_back({"solve-real-as-int", opts.smt.solveRealAsInt ? "true" : "false"});
11943
  res.push_back({"sort-inference", opts.smt.sortInference ? "true" : "false"});
11944
  res.push_back({"static-learning", opts.smt.doStaticLearning ? "true" : "false"});
11945
  { std::stringstream ss; ss << opts.smt.sygusOut; res.push_back({"sygus-out", ss.str()}); }
11946
  res.push_back({"sygus-print-callbacks", opts.smt.sygusPrintCallbacks ? "true" : "false"});
11947
  res.push_back({"unconstrained-simp", opts.smt.unconstrainedSimp ? "true" : "false"});
11948
  { std::stringstream ss; ss << opts.smt.unsatCoresMode; res.push_back({"unsat-cores-mode", ss.str()}); }
11949
  res.push_back({"re-elim", opts.strings.regExpElim ? "true" : "false"});
11950
  res.push_back({"re-elim-agg", opts.strings.regExpElimAgg ? "true" : "false"});
11951
  { std::stringstream ss; ss << opts.strings.stringRegExpInterMode; res.push_back({"re-inter-mode", ss.str()}); }
11952
  res.push_back({"strings-check-entail-len", opts.strings.stringCheckEntailLen ? "true" : "false"});
11953
  res.push_back({"strings-eager", opts.strings.stringEager ? "true" : "false"});
11954
  res.push_back({"strings-eager-eval", opts.strings.stringEagerEval ? "true" : "false"});
11955
  res.push_back({"strings-eager-len", opts.strings.stringEagerLen ? "true" : "false"});
11956
  res.push_back({"strings-exp", opts.strings.stringExp ? "true" : "false"});
11957
  res.push_back({"strings-ff", opts.strings.stringFlatForms ? "true" : "false"});
11958
  res.push_back({"strings-fmf", opts.strings.stringFMF ? "true" : "false"});
11959
  res.push_back({"strings-guess-model", opts.strings.stringGuessModel ? "true" : "false"});
11960
  res.push_back({"strings-infer-as-lemmas", opts.strings.stringInferAsLemmas ? "true" : "false"});
11961
  res.push_back({"strings-infer-sym", opts.strings.stringInferSym ? "true" : "false"});
11962
  res.push_back({"strings-lazy-pp", opts.strings.stringLazyPreproc ? "true" : "false"});
11963
  res.push_back({"strings-len-norm", opts.strings.stringLenNorm ? "true" : "false"});
11964
  res.push_back({"strings-lprop-csp", opts.strings.stringLenPropCsp ? "true" : "false"});
11965
  res.push_back({"strings-min-prefix-explain", opts.strings.stringMinPrefixExplain ? "true" : "false"});
11966
  { std::stringstream ss; ss << opts.strings.stringProcessLoopMode; res.push_back({"strings-process-loop-mode", ss.str()}); }
11967
  res.push_back({"strings-rexplain-lemmas", opts.strings.stringRExplainLemmas ? "true" : "false"});
11968
  res.push_back({"strings-unified-vspt", opts.strings.stringUnifiedVSpt ? "true" : "false"});
11969
  res.push_back({"assign-function-values", opts.theory.assignFunctionValues ? "true" : "false"});
11970
  res.push_back({"condense-function-values", opts.theory.condenseFunctionValues ? "true" : "false"});
11971
  { std::stringstream ss; ss << opts.theory.eeMode; res.push_back({"ee-mode", ss.str()}); }
11972
  res.push_back({"relevance-filter", opts.theory.relevanceFilter ? "true" : "false"});
11973
  { std::stringstream ss; ss << opts.theory.tcMode; res.push_back({"tc-mode", ss.str()}); }
11974
  { std::stringstream ss; ss << opts.theory.theoryOfMode; res.push_back({"theoryof-mode", ss.str()}); }
11975
  res.push_back({"symmetry-breaker", opts.uf.ufSymmetryBreaker ? "true" : "false"});
11976
  res.push_back({"uf-ho", opts.uf.ufHo ? "true" : "false"});
11977
  res.push_back({"uf-ho-ext", opts.uf.ufHoExt ? "true" : "false"});
11978
  res.push_back({"uf-ss-abort-card", std::to_string(opts.uf.ufssAbortCardinality)});
11979
  res.push_back({"uf-ss-fair", opts.uf.ufssFairness ? "true" : "false"});
11980
  res.push_back({"uf-ss-fair-monotone", opts.uf.ufssFairnessMonotone ? "true" : "false"});
11981
  res.push_back({"uf-ss-totality-limited", std::to_string(opts.uf.ufssTotalityLimited)});
11982
  res.push_back({"uf-ss-totality-sym-break", opts.uf.ufssTotalitySymBreak ? "true" : "false"});
11983
  { std::stringstream ss; ss << opts.uf.ufssMode; res.push_back({"uf-ss", ss.str()}); }
11984
11985
  return res;
11986
}
11987
11988
2
std::vector<std::string> getNames()
11989
{
11990
  return {
11991
"abstract-values", "ackermann", "ag-miniscope-quant", "approx-branch-depth",
11992
"arith-brab", "arith-cong-man", "arith-eq-solver", "arith-no-partial-fun",
11993
"arith-prop", "arith-prop-clauses", "arith-rewrite-equalities", "arrays-config",
11994
"arrays-eager-index", "arrays-eager-lemmas", "arrays-exp", "arrays-model-based",
11995
"arrays-optimize-linear", "arrays-prop", "arrays-reduce-sharing",
11996
"arrays-weak-equiv", "assign-function-values", "bitblast", "bitblast-aig",
11997
"bitwise-eq", "block-models", "bool-to-bv", "bv-abstraction", "bv-aig-simp",
11998
"bv-alg-extf", "bv-algebraic-budget", "bv-algebraic-solver", "bv-assert-input",
11999
"bv-eager-explanations", "bv-eq-solver", "bv-extract-arith", "bv-gauss-elim",
12000
"bv-inequality-solver", "bv-intro-pow2", "bv-num-func",
12001
"bv-print-consts-as-indexed-symbols", "bv-propagate", "bv-quick-xplain",
12002
"bv-sat-solver", "bv-skolemize", "bv-solver", "bv-to-bool",
12003
"bvand-integer-granularity", "cdt-bisimilar", "cegis-sample", "cegqi",
12004
"cegqi-all", "cegqi-bv", "cegqi-bv-concat-inv", "cegqi-bv-ineq",
12005
"cegqi-bv-interleave-value", "cegqi-bv-linear", "cegqi-bv-rm-extract",
12006
"cegqi-bv-solve-nl", "cegqi-full", "cegqi-innermost", "cegqi-midpoint",
12007
"cegqi-min-bounds", "cegqi-model", "cegqi-multi-inst", "cegqi-nested-qe",
12008
"cegqi-nopt", "cegqi-repeat-lit", "cegqi-round-up-lia", "cegqi-sat",
12009
"cegqi-use-inf-int", "cegqi-use-inf-real", "check-abducts", "check-interpols",
12010
"check-models", "check-proofs", "check-synth-sol", "check-unsat-cores",
12011
"collect-pivot-stats", "cond-var-split-agg-quant", "cond-var-split-quant",
12012
"condense-function-values", "conjecture-filter-active-terms",
12013
"conjecture-filter-canonical", "conjecture-filter-model", "conjecture-gen",
12014
"conjecture-gen-gt-enum", "conjecture-gen-max-depth",
12015
"conjecture-gen-per-round", "conjecture-gen-uee-intro", "conjecture-no-filter",
12016
"copyright", "cut-all-bounded", "dag-thresh", "debug", "debug-check-models",
12017
"decision", "decision-mode", "decision-random-weight", "decision-threshold",
12018
"decision-use-weight", "decision-weight-internal", "diagnostic-output-channel",
12019
"dio-decomps", "dio-repeat", "dio-solver", "dio-turns", "dt-binary-split",
12020
"dt-blast-splits", "dt-cyclic", "dt-force-assignment", "dt-infer-as-lemmas",
12021
"dt-nested-rec", "dt-polite-optimize", "dt-rewrite-error-sel", "dt-share-sel",
12022
"dt-stc-ind", "dt-var-exp-quant", "dump", "dump-instantiations",
12023
"dump-instantiations-debug", "dump-models", "dump-proofs", "dump-to",
12024
"dump-unsat-cores", "dump-unsat-cores-full", "e-matching", "early-exit",
12025
"early-ite-removal", "ee-mode", "elim-taut-quant", "err",
12026
"error-selection-rule", "expand-definitions", "expr-depth", "ext-rew-prep",
12027
"ext-rew-prep-agg", "ext-rewrite-quant", "fc-penalties", "filesystem-access",
12028
"finite-model-find", "flatten-ho-chains", "fmf-bound", "fmf-bound-int",
12029
"fmf-bound-lazy", "fmf-fmc-simple", "fmf-fresh-dc", "fmf-fun", "fmf-fun-rlv",
12030
"fmf-inst-engine", "fmf-type-completion-thresh", "force-logic",
12031
"force-no-limit-cpu-while-dump", "foreign-theory-rewrite", "fp-exp",
12032
"fp-lazy-wb", "fs-interleave", "fs-stratify", "fs-sum", "full-saturate-quant",
12033
"full-saturate-quant-limit", "full-saturate-quant-rd", "global-declarations",
12034
"global-negate", "help", "heuristic-pivots", "ho-elim", "ho-elim-store-ax",
12035
"ho-matching", "ho-matching-var-priority", "ho-merge-term-db", "iand-mode",
12036
"in", "increment-triggers", "incremental", "input-language", "inst-format",
12037
"inst-level-input-only", "inst-max-level", "inst-max-rounds", "inst-no-entail",
12038
"inst-when", "inst-when-phase", "inst-when-strict-interleave",
12039
"inst-when-tc-first", "int-wf-ind", "interactive", "interactive-mode",
12040
"interactive-prompt", "ite-dtt-split-quant", "ite-lift-quant", "ite-simp",
12041
"jh-rlv-order", "jh-skolem", "jh-skolem-rlv", "lang", "learned-rewrite",
12042
"lemmas-on-replay-failure", "literal-matching", "macros-quant",
12043
"macros-quant-mode", "maxCutsInContext", "mbqi", "mbqi-interleave",
12044
"mbqi-one-inst-per-round", "minimal-unsat-cores", "minisat-dump-dimacs",
12045
"minisat-elimination", "miniscope-quant", "miniscope-quant-fv", "miplib-trick",
12046
"miplib-trick-subs", "mmap", "model-cores", "model-format", "model-u-print",
12047
"model-uninterp-print", "model-witness-value", "multi-trigger-cache",
12048
"multi-trigger-linear", "multi-trigger-priority", "multi-trigger-when-single",
12049
"new-prop", "nl-cad", "nl-cad-initial", "nl-cad-lift", "nl-cad-proj", "nl-ext",
12050
"nl-ext-ent-conf", "nl-ext-factor", "nl-ext-inc-prec", "nl-ext-purify",
12051
"nl-ext-rbound", "nl-ext-rewrite", "nl-ext-split-zero", "nl-ext-tf-taylor-deg",
12052
"nl-ext-tf-tplanes", "nl-ext-tplanes", "nl-ext-tplanes-interleave", "nl-icp",
12053
"nl-rlv", "on-repeat-ite-simp", "out", "output", "output-lang",
12054
"output-language", "parse-only", "partial-triggers", "pb-rewrites",
12055
"pivot-threshold", "pool-inst", "pp-assert-max-sub-size", "pre-skolem-quant",
12056
"pre-skolem-quant-agg", "pre-skolem-quant-nested", "prenex-quant",
12057
"prenex-quant-user", "preprocess-only", "print-inst", "print-inst-full",
12058
"print-success", "produce-abducts", "produce-assertions", "produce-assignments",
12059
"produce-interpols", "produce-models", "produce-proofs",
12060
"produce-unsat-assumptions", "produce-unsat-cores", "proof-eager-checking",
12061
"proof-format-mode", "proof-granularity", "proof-pedantic",
12062
"proof-print-conclusion", "prop-row-length", "purify-triggers",
12063
"qcf-all-conflict", "qcf-eager-check-rd", "qcf-eager-test",
12064
"qcf-nested-conflict", "qcf-skip-rd", "qcf-tconstraint", "qcf-vo-exp",
12065
"quant-alpha-equiv", "quant-cf", "quant-cf-mode", "quant-cf-when",
12066
"quant-dsplit-mode", "quant-fun-wd", "quant-ind", "quant-rep-mode",
12067
"quant-split", "quiet", "random-freq", "random-frequency", "random-seed",
12068
"re-elim", "re-elim-agg", "re-inter-mode", "refine-conflicts",
12069
"register-quant-body-terms", "regular-output-channel", "relational-triggers",
12070
"relevance-filter", "relevant-triggers", "repeat-simp",
12071
"replay-early-close-depth", "replay-failure-penalty", "replay-lemma-reject-cut",
12072
"replay-num-err-penalty", "replay-reject-cut", "replay-soi-major-threshold",
12073
"replay-soi-major-threshold-pen", "replay-soi-minor-threshold",
12074
"replay-soi-minor-threshold-pen", "reproducible-resource-limit",
12075
"restart-int-base", "restart-int-inc", "restrict-pivots",
12076
"revert-arith-models-on-unsat", "rlimit", "rlimit-per", "rr-turns", "rweight",
12077
"se-solve-int", "seed", "segv-spin", "semantic-checks", "sep-check-neg",
12078
"sep-child-refine", "sep-deq-c", "sep-exp", "sep-min-refine",
12079
"sep-pre-skolem-emp", "sets-ext", "sets-infer-as-lemmas", "sets-proxy-lemmas",
12080
"show-config", "show-debug-tags", "show-trace-tags", "simp-ite-compress",
12081
"simp-ite-hunt-zombies", "simp-with-care", "simplex-check-period",
12082
"simplification", "simplification-mode", "soi-qe", "solve-bv-as-int",
12083
"solve-int-as-bv", "solve-real-as-int", "sort-inference",
12084
"standard-effort-variable-order-pivots", "static-learning", "stats",
12085
"stats-all", "stats-every-query", "stats-expert", "strict-parsing",
12086
"strict-triggers", "strings-check-entail-len", "strings-eager",
12087
"strings-eager-eval", "strings-eager-len", "strings-exp", "strings-ff",
12088
"strings-fmf", "strings-guess-model", "strings-infer-as-lemmas",
12089
"strings-infer-sym", "strings-lazy-pp", "strings-len-norm", "strings-lprop-csp",
12090
"strings-min-prefix-explain", "strings-process-loop-mode",
12091
"strings-rexplain-lemmas", "strings-unified-vspt", "sygus", "sygus-abort-size",
12092
"sygus-active-gen", "sygus-active-gen-cfactor", "sygus-add-const-grammar",
12093
"sygus-arg-relevant", "sygus-auto-unfold", "sygus-bool-ite-return-const",
12094
"sygus-core-connective", "sygus-crepair-abort", "sygus-eval-opt",
12095
"sygus-eval-unfold", "sygus-eval-unfold-bool", "sygus-expr-miner-check-timeout",
12096
"sygus-ext-rew", "sygus-fair", "sygus-fair-max", "sygus-filter-sol",
12097
"sygus-filter-sol-rev", "sygus-grammar-cons", "sygus-grammar-norm",
12098
"sygus-inference", "sygus-inst", "sygus-inst-mode", "sygus-inst-scope",
12099
"sygus-inst-term-sel", "sygus-inv-templ", "sygus-inv-templ-when-sg",
12100
"sygus-min-grammar", "sygus-out", "sygus-pbe", "sygus-pbe-multi-fair",
12101
"sygus-pbe-multi-fair-diff", "sygus-print-callbacks", "sygus-qe-preproc",
12102
"sygus-query-gen", "sygus-query-gen-check", "sygus-query-gen-dump-files",
12103
"sygus-query-gen-thresh", "sygus-rec-fun", "sygus-rec-fun-eval-limit",
12104
"sygus-repair-const", "sygus-repair-const-timeout", "sygus-rr",
12105
"sygus-rr-synth", "sygus-rr-synth-accel", "sygus-rr-synth-check",
12106
"sygus-rr-synth-filter-cong", "sygus-rr-synth-filter-match",
12107
"sygus-rr-synth-filter-nl", "sygus-rr-synth-filter-order",
12108
"sygus-rr-synth-input", "sygus-rr-synth-input-nvars",
12109
"sygus-rr-synth-input-use-bool", "sygus-rr-synth-rec", "sygus-rr-verify",
12110
"sygus-rr-verify-abort", "sygus-sample-fp-uniform", "sygus-sample-grammar",
12111
"sygus-samples", "sygus-si", "sygus-si-abort", "sygus-si-partial",
12112
"sygus-si-rcons", "sygus-si-rcons-limit", "sygus-si-reconstruct-const",
12113
"sygus-stream", "sygus-sym-break", "sygus-sym-break-agg",
12114
"sygus-sym-break-dynamic", "sygus-sym-break-lazy", "sygus-sym-break-pbe",
12115
"sygus-sym-break-rlv", "sygus-templ-embed-grammar",
12116
"sygus-unif-cond-independent-no-repeat-sol", "sygus-unif-pi",
12117
"sygus-unif-shuffle-cond", "sygus-verify-inst-max-rounds", "symmetry-breaker",
12118
"tc-mode", "term-db-cd", "term-db-mode", "theoryof-mode", "tlimit",
12119
"tlimit-per", "trace", "trigger-active-sel", "trigger-sel", "type-checking",
12120
"uf-ho", "uf-ho-ext", "uf-ss", "uf-ss-abort-card", "uf-ss-fair",
12121
"uf-ss-fair-monotone", "uf-ss-totality-limited", "uf-ss-totality-sym-break",
12122
"uf-symmetry-breaker", "unate-lemmas", "unconstrained-simp", "unsat-cores-mode",
12123
"use-approx", "use-fcsimplex", "use-soi", "user-pat", "var-elim-quant",
12124
"var-ineq-elim-quant", "verbose", "verbosity", "version"
12125
2
  };
12126
}
12127
12128
29322
}  // namespace cvc5::options