GCC Code Coverage Report
Directory: . Exec Total Coverage
File: build-coverage/src/options/quantifiers_options.cpp Lines: 563 1775 31.7 %
Date: 2021-05-22 Branches: 34 691 4.9 %

Line Exec Source
1
/******************************************************************************
2
 * Top contributors (to current version):
3
 *   Mathias Preiner, Aina Niemetz
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
 * Option template for option modules.
14
 *
15
 * For each <module>_options.toml configuration file, mkoptions.py
16
 * expands this template and generates a <module>_options.cpp file.
17
 */
18
#include "options/quantifiers_options.h"
19
20
#include <iostream>
21
22
#include "base/check.h"
23
#include "options/option_exception.h"
24
25
// clang-format off
26
namespace cvc5 {
27
28
template <> options::aggressiveMiniscopeQuant__option_t::type& Options::ref(
29
    options::aggressiveMiniscopeQuant__option_t)
30
{
31
    return quantifiers().aggressiveMiniscopeQuant;
32
}
33
235581
template <> const options::aggressiveMiniscopeQuant__option_t::type& Options::operator[](
34
    options::aggressiveMiniscopeQuant__option_t) const
35
{
36
235581
  return quantifiers().aggressiveMiniscopeQuant;
37
}
38
template <> bool Options::wasSetByUser(options::aggressiveMiniscopeQuant__option_t) const
39
{
40
  return quantifiers().aggressiveMiniscopeQuant__setByUser__;
41
}
42
template <> options::cegisSample__option_t::type& Options::ref(
43
    options::cegisSample__option_t)
44
{
45
    return quantifiers().cegisSample;
46
}
47
3579
template <> const options::cegisSample__option_t::type& Options::operator[](
48
    options::cegisSample__option_t) const
49
{
50
3579
  return quantifiers().cegisSample;
51
}
52
template <> bool Options::wasSetByUser(options::cegisSample__option_t) const
53
{
54
  return quantifiers().cegisSample__setByUser__;
55
}
56
6457
template <> options::cegqi__option_t::type& Options::ref(
57
    options::cegqi__option_t)
58
{
59
6457
    return quantifiers().cegqi;
60
}
61
4726212
template <> const options::cegqi__option_t::type& Options::operator[](
62
    options::cegqi__option_t) const
63
{
64
4726212
  return quantifiers().cegqi;
65
}
66
6476
template <> bool Options::wasSetByUser(options::cegqi__option_t) const
67
{
68
6476
  return quantifiers().cegqi__setByUser__;
69
}
70
template <> options::cegqiAll__option_t::type& Options::ref(
71
    options::cegqiAll__option_t)
72
{
73
    return quantifiers().cegqiAll;
74
}
75
21601
template <> const options::cegqiAll__option_t::type& Options::operator[](
76
    options::cegqiAll__option_t) const
77
{
78
21601
  return quantifiers().cegqiAll;
79
}
80
template <> bool Options::wasSetByUser(options::cegqiAll__option_t) const
81
{
82
  return quantifiers().cegqiAll__setByUser__;
83
}
84
810
template <> options::cegqiBv__option_t::type& Options::ref(
85
    options::cegqiBv__option_t)
86
{
87
810
    return quantifiers().cegqiBv;
88
}
89
19600
template <> const options::cegqiBv__option_t::type& Options::operator[](
90
    options::cegqiBv__option_t) const
91
{
92
19600
  return quantifiers().cegqiBv;
93
}
94
813
template <> bool Options::wasSetByUser(options::cegqiBv__option_t) const
95
{
96
813
  return quantifiers().cegqiBv__setByUser__;
97
}
98
template <> options::cegqiBvConcInv__option_t::type& Options::ref(
99
    options::cegqiBvConcInv__option_t)
100
{
101
    return quantifiers().cegqiBvConcInv;
102
}
103
280
template <> const options::cegqiBvConcInv__option_t::type& Options::operator[](
104
    options::cegqiBvConcInv__option_t) const
105
{
106
280
  return quantifiers().cegqiBvConcInv;
107
}
108
template <> bool Options::wasSetByUser(options::cegqiBvConcInv__option_t) const
109
{
110
  return quantifiers().cegqiBvConcInv__setByUser__;
111
}
112
template <> options::cegqiBvIneqMode__option_t::type& Options::ref(
113
    options::cegqiBvIneqMode__option_t)
114
{
115
    return quantifiers().cegqiBvIneqMode;
116
}
117
8746
template <> const options::cegqiBvIneqMode__option_t::type& Options::operator[](
118
    options::cegqiBvIneqMode__option_t) const
119
{
120
8746
  return quantifiers().cegqiBvIneqMode;
121
}
122
template <> bool Options::wasSetByUser(options::cegqiBvIneqMode__option_t) const
123
{
124
  return quantifiers().cegqiBvIneqMode__setByUser__;
125
}
126
template <> options::cegqiBvInterleaveValue__option_t::type& Options::ref(
127
    options::cegqiBvInterleaveValue__option_t)
128
{
129
    return quantifiers().cegqiBvInterleaveValue;
130
}
131
1587
template <> const options::cegqiBvInterleaveValue__option_t::type& Options::operator[](
132
    options::cegqiBvInterleaveValue__option_t) const
133
{
134
1587
  return quantifiers().cegqiBvInterleaveValue;
135
}
136
template <> bool Options::wasSetByUser(options::cegqiBvInterleaveValue__option_t) const
137
{
138
  return quantifiers().cegqiBvInterleaveValue__setByUser__;
139
}
140
template <> options::cegqiBvLinearize__option_t::type& Options::ref(
141
    options::cegqiBvLinearize__option_t)
142
{
143
    return quantifiers().cegqiBvLinearize;
144
}
145
9771
template <> const options::cegqiBvLinearize__option_t::type& Options::operator[](
146
    options::cegqiBvLinearize__option_t) const
147
{
148
9771
  return quantifiers().cegqiBvLinearize;
149
}
150
template <> bool Options::wasSetByUser(options::cegqiBvLinearize__option_t) const
151
{
152
  return quantifiers().cegqiBvLinearize__setByUser__;
153
}
154
template <> options::cegqiBvRmExtract__option_t::type& Options::ref(
155
    options::cegqiBvRmExtract__option_t)
156
{
157
    return quantifiers().cegqiBvRmExtract;
158
}
159
700
template <> const options::cegqiBvRmExtract__option_t::type& Options::operator[](
160
    options::cegqiBvRmExtract__option_t) const
161
{
162
700
  return quantifiers().cegqiBvRmExtract;
163
}
164
template <> bool Options::wasSetByUser(options::cegqiBvRmExtract__option_t) const
165
{
166
  return quantifiers().cegqiBvRmExtract__setByUser__;
167
}
168
template <> options::cegqiBvSolveNl__option_t::type& Options::ref(
169
    options::cegqiBvSolveNl__option_t)
170
{
171
    return quantifiers().cegqiBvSolveNl;
172
}
173
3190
template <> const options::cegqiBvSolveNl__option_t::type& Options::operator[](
174
    options::cegqiBvSolveNl__option_t) const
175
{
176
3190
  return quantifiers().cegqiBvSolveNl;
177
}
178
template <> bool Options::wasSetByUser(options::cegqiBvSolveNl__option_t) const
179
{
180
  return quantifiers().cegqiBvSolveNl__setByUser__;
181
}
182
873
template <> options::cegqiFullEffort__option_t::type& Options::ref(
183
    options::cegqiFullEffort__option_t)
184
{
185
873
    return quantifiers().cegqiFullEffort;
186
}
187
737
template <> const options::cegqiFullEffort__option_t::type& Options::operator[](
188
    options::cegqiFullEffort__option_t) const
189
{
190
737
  return quantifiers().cegqiFullEffort;
191
}
192
965
template <> bool Options::wasSetByUser(options::cegqiFullEffort__option_t) const
193
{
194
965
  return quantifiers().cegqiFullEffort__setByUser__;
195
}
196
template <> options::cegqiInnermost__option_t::type& Options::ref(
197
    options::cegqiInnermost__option_t)
198
{
199
    return quantifiers().cegqiInnermost;
200
}
201
24100
template <> const options::cegqiInnermost__option_t::type& Options::operator[](
202
    options::cegqiInnermost__option_t) const
203
{
204
24100
  return quantifiers().cegqiInnermost;
205
}
206
template <> bool Options::wasSetByUser(options::cegqiInnermost__option_t) const
207
{
208
  return quantifiers().cegqiInnermost__setByUser__;
209
}
210
813
template <> options::cegqiMidpoint__option_t::type& Options::ref(
211
    options::cegqiMidpoint__option_t)
212
{
213
813
    return quantifiers().cegqiMidpoint;
214
}
215
2808
template <> const options::cegqiMidpoint__option_t::type& Options::operator[](
216
    options::cegqiMidpoint__option_t) const
217
{
218
2808
  return quantifiers().cegqiMidpoint;
219
}
220
813
template <> bool Options::wasSetByUser(options::cegqiMidpoint__option_t) const
221
{
222
813
  return quantifiers().cegqiMidpoint__setByUser__;
223
}
224
template <> options::cegqiMinBounds__option_t::type& Options::ref(
225
    options::cegqiMinBounds__option_t)
226
{
227
    return quantifiers().cegqiMinBounds;
228
}
229
5928
template <> const options::cegqiMinBounds__option_t::type& Options::operator[](
230
    options::cegqiMinBounds__option_t) const
231
{
232
5928
  return quantifiers().cegqiMinBounds;
233
}
234
template <> bool Options::wasSetByUser(options::cegqiMinBounds__option_t) const
235
{
236
  return quantifiers().cegqiMinBounds__setByUser__;
237
}
238
template <> options::cegqiModel__option_t::type& Options::ref(
239
    options::cegqiModel__option_t)
240
{
241
    return quantifiers().cegqiModel;
242
}
243
33800
template <> const options::cegqiModel__option_t::type& Options::operator[](
244
    options::cegqiModel__option_t) const
245
{
246
33800
  return quantifiers().cegqiModel;
247
}
248
template <> bool Options::wasSetByUser(options::cegqiModel__option_t) const
249
{
250
  return quantifiers().cegqiModel__setByUser__;
251
}
252
template <> options::cegqiMultiInst__option_t::type& Options::ref(
253
    options::cegqiMultiInst__option_t)
254
{
255
    return quantifiers().cegqiMultiInst;
256
}
257
33073
template <> const options::cegqiMultiInst__option_t::type& Options::operator[](
258
    options::cegqiMultiInst__option_t) const
259
{
260
33073
  return quantifiers().cegqiMultiInst;
261
}
262
template <> bool Options::wasSetByUser(options::cegqiMultiInst__option_t) const
263
{
264
  return quantifiers().cegqiMultiInst__setByUser__;
265
}
266
7428
template <> options::cegqiNestedQE__option_t::type& Options::ref(
267
    options::cegqiNestedQE__option_t)
268
{
269
7428
    return quantifiers().cegqiNestedQE;
270
}
271
15783
template <> const options::cegqiNestedQE__option_t::type& Options::operator[](
272
    options::cegqiNestedQE__option_t) const
273
{
274
15783
  return quantifiers().cegqiNestedQE;
275
}
276
template <> bool Options::wasSetByUser(options::cegqiNestedQE__option_t) const
277
{
278
  return quantifiers().cegqiNestedQE__setByUser__;
279
}
280
template <> options::cegqiNopt__option_t::type& Options::ref(
281
    options::cegqiNopt__option_t)
282
{
283
    return quantifiers().cegqiNopt;
284
}
285
40
template <> const options::cegqiNopt__option_t::type& Options::operator[](
286
    options::cegqiNopt__option_t) const
287
{
288
40
  return quantifiers().cegqiNopt;
289
}
290
template <> bool Options::wasSetByUser(options::cegqiNopt__option_t) const
291
{
292
  return quantifiers().cegqiNopt__setByUser__;
293
}
294
template <> options::cegqiRepeatLit__option_t::type& Options::ref(
295
    options::cegqiRepeatLit__option_t)
296
{
297
    return quantifiers().cegqiRepeatLit;
298
}
299
145807
template <> const options::cegqiRepeatLit__option_t::type& Options::operator[](
300
    options::cegqiRepeatLit__option_t) const
301
{
302
145807
  return quantifiers().cegqiRepeatLit;
303
}
304
template <> bool Options::wasSetByUser(options::cegqiRepeatLit__option_t) const
305
{
306
  return quantifiers().cegqiRepeatLit__setByUser__;
307
}
308
template <> options::cegqiRoundUpLowerLia__option_t::type& Options::ref(
309
    options::cegqiRoundUpLowerLia__option_t)
310
{
311
    return quantifiers().cegqiRoundUpLowerLia;
312
}
313
9
template <> const options::cegqiRoundUpLowerLia__option_t::type& Options::operator[](
314
    options::cegqiRoundUpLowerLia__option_t) const
315
{
316
9
  return quantifiers().cegqiRoundUpLowerLia;
317
}
318
template <> bool Options::wasSetByUser(options::cegqiRoundUpLowerLia__option_t) const
319
{
320
  return quantifiers().cegqiRoundUpLowerLia__setByUser__;
321
}
322
template <> options::cegqiSat__option_t::type& Options::ref(
323
    options::cegqiSat__option_t)
324
{
325
    return quantifiers().cegqiSat;
326
}
327
2649
template <> const options::cegqiSat__option_t::type& Options::operator[](
328
    options::cegqiSat__option_t) const
329
{
330
2649
  return quantifiers().cegqiSat;
331
}
332
template <> bool Options::wasSetByUser(options::cegqiSat__option_t) const
333
{
334
  return quantifiers().cegqiSat__setByUser__;
335
}
336
template <> options::cegqiUseInfInt__option_t::type& Options::ref(
337
    options::cegqiUseInfInt__option_t)
338
{
339
    return quantifiers().cegqiUseInfInt;
340
}
341
5460
template <> const options::cegqiUseInfInt__option_t::type& Options::operator[](
342
    options::cegqiUseInfInt__option_t) const
343
{
344
5460
  return quantifiers().cegqiUseInfInt;
345
}
346
template <> bool Options::wasSetByUser(options::cegqiUseInfInt__option_t) const
347
{
348
  return quantifiers().cegqiUseInfInt__setByUser__;
349
}
350
template <> options::cegqiUseInfReal__option_t::type& Options::ref(
351
    options::cegqiUseInfReal__option_t)
352
{
353
    return quantifiers().cegqiUseInfReal;
354
}
355
468
template <> const options::cegqiUseInfReal__option_t::type& Options::operator[](
356
    options::cegqiUseInfReal__option_t) const
357
{
358
468
  return quantifiers().cegqiUseInfReal;
359
}
360
template <> bool Options::wasSetByUser(options::cegqiUseInfReal__option_t) const
361
{
362
  return quantifiers().cegqiUseInfReal__setByUser__;
363
}
364
template <> options::condVarSplitQuantAgg__option_t::type& Options::ref(
365
    options::condVarSplitQuantAgg__option_t)
366
{
367
    return quantifiers().condVarSplitQuantAgg;
368
}
369
21689
template <> const options::condVarSplitQuantAgg__option_t::type& Options::operator[](
370
    options::condVarSplitQuantAgg__option_t) const
371
{
372
21689
  return quantifiers().condVarSplitQuantAgg;
373
}
374
template <> bool Options::wasSetByUser(options::condVarSplitQuantAgg__option_t) const
375
{
376
  return quantifiers().condVarSplitQuantAgg__setByUser__;
377
}
378
template <> options::condVarSplitQuant__option_t::type& Options::ref(
379
    options::condVarSplitQuant__option_t)
380
{
381
    return quantifiers().condVarSplitQuant;
382
}
383
214330
template <> const options::condVarSplitQuant__option_t::type& Options::operator[](
384
    options::condVarSplitQuant__option_t) const
385
{
386
214330
  return quantifiers().condVarSplitQuant;
387
}
388
template <> bool Options::wasSetByUser(options::condVarSplitQuant__option_t) const
389
{
390
  return quantifiers().condVarSplitQuant__setByUser__;
391
}
392
4
template <> options::conjectureFilterActiveTerms__option_t::type& Options::ref(
393
    options::conjectureFilterActiveTerms__option_t)
394
{
395
4
    return quantifiers().conjectureFilterActiveTerms;
396
}
397
3243
template <> const options::conjectureFilterActiveTerms__option_t::type& Options::operator[](
398
    options::conjectureFilterActiveTerms__option_t) const
399
{
400
3243
  return quantifiers().conjectureFilterActiveTerms;
401
}
402
4
template <> bool Options::wasSetByUser(options::conjectureFilterActiveTerms__option_t) const
403
{
404
4
  return quantifiers().conjectureFilterActiveTerms__setByUser__;
405
}
406
4
template <> options::conjectureFilterCanonical__option_t::type& Options::ref(
407
    options::conjectureFilterCanonical__option_t)
408
{
409
4
    return quantifiers().conjectureFilterCanonical;
410
}
411
6592
template <> const options::conjectureFilterCanonical__option_t::type& Options::operator[](
412
    options::conjectureFilterCanonical__option_t) const
413
{
414
6592
  return quantifiers().conjectureFilterCanonical;
415
}
416
4
template <> bool Options::wasSetByUser(options::conjectureFilterCanonical__option_t) const
417
{
418
4
  return quantifiers().conjectureFilterCanonical__setByUser__;
419
}
420
template <> options::conjectureFilterModel__option_t::type& Options::ref(
421
    options::conjectureFilterModel__option_t)
422
{
423
    return quantifiers().conjectureFilterModel;
424
}
425
14590
template <> const options::conjectureFilterModel__option_t::type& Options::operator[](
426
    options::conjectureFilterModel__option_t) const
427
{
428
14590
  return quantifiers().conjectureFilterModel;
429
}
430
4
template <> bool Options::wasSetByUser(options::conjectureFilterModel__option_t) const
431
{
432
4
  return quantifiers().conjectureFilterModel__setByUser__;
433
}
434
template <> options::conjectureGen__option_t::type& Options::ref(
435
    options::conjectureGen__option_t)
436
{
437
    return quantifiers().conjectureGen;
438
}
439
6414
template <> const options::conjectureGen__option_t::type& Options::operator[](
440
    options::conjectureGen__option_t) const
441
{
442
6414
  return quantifiers().conjectureGen;
443
}
444
template <> bool Options::wasSetByUser(options::conjectureGen__option_t) const
445
{
446
  return quantifiers().conjectureGen__setByUser__;
447
}
448
template <> options::conjectureGenGtEnum__option_t::type& Options::ref(
449
    options::conjectureGenGtEnum__option_t)
450
{
451
    return quantifiers().conjectureGenGtEnum;
452
}
453
92
template <> const options::conjectureGenGtEnum__option_t::type& Options::operator[](
454
    options::conjectureGenGtEnum__option_t) const
455
{
456
92
  return quantifiers().conjectureGenGtEnum;
457
}
458
template <> bool Options::wasSetByUser(options::conjectureGenGtEnum__option_t) const
459
{
460
  return quantifiers().conjectureGenGtEnum__setByUser__;
461
}
462
template <> options::conjectureGenMaxDepth__option_t::type& Options::ref(
463
    options::conjectureGenMaxDepth__option_t)
464
{
465
    return quantifiers().conjectureGenMaxDepth;
466
}
467
44
template <> const options::conjectureGenMaxDepth__option_t::type& Options::operator[](
468
    options::conjectureGenMaxDepth__option_t) const
469
{
470
44
  return quantifiers().conjectureGenMaxDepth;
471
}
472
template <> bool Options::wasSetByUser(options::conjectureGenMaxDepth__option_t) const
473
{
474
  return quantifiers().conjectureGenMaxDepth__setByUser__;
475
}
476
template <> options::conjectureGenPerRound__option_t::type& Options::ref(
477
    options::conjectureGenPerRound__option_t)
478
{
479
    return quantifiers().conjectureGenPerRound;
480
}
481
698
template <> const options::conjectureGenPerRound__option_t::type& Options::operator[](
482
    options::conjectureGenPerRound__option_t) const
483
{
484
698
  return quantifiers().conjectureGenPerRound;
485
}
486
9460
template <> bool Options::wasSetByUser(options::conjectureGenPerRound__option_t) const
487
{
488
9460
  return quantifiers().conjectureGenPerRound__setByUser__;
489
}
490
template <> options::conjectureUeeIntro__option_t::type& Options::ref(
491
    options::conjectureUeeIntro__option_t)
492
{
493
    return quantifiers().conjectureUeeIntro;
494
}
495
100
template <> const options::conjectureUeeIntro__option_t::type& Options::operator[](
496
    options::conjectureUeeIntro__option_t) const
497
{
498
100
  return quantifiers().conjectureUeeIntro;
499
}
500
template <> bool Options::wasSetByUser(options::conjectureUeeIntro__option_t) const
501
{
502
  return quantifiers().conjectureUeeIntro__setByUser__;
503
}
504
template <> options::conjectureNoFilter__option_t::type& Options::ref(
505
    options::conjectureNoFilter__option_t)
506
{
507
    return quantifiers().conjectureNoFilter;
508
}
509
9460
template <> const options::conjectureNoFilter__option_t::type& Options::operator[](
510
    options::conjectureNoFilter__option_t) const
511
{
512
9460
  return quantifiers().conjectureNoFilter;
513
}
514
template <> bool Options::wasSetByUser(options::conjectureNoFilter__option_t) const
515
{
516
  return quantifiers().conjectureNoFilter__setByUser__;
517
}
518
template <> options::debugInst__option_t::type& Options::ref(
519
    options::debugInst__option_t)
520
{
521
    return quantifiers().debugInst;
522
}
523
9935
template <> const options::debugInst__option_t::type& Options::operator[](
524
    options::debugInst__option_t) const
525
{
526
9935
  return quantifiers().debugInst;
527
}
528
template <> bool Options::wasSetByUser(options::debugInst__option_t) const
529
{
530
  return quantifiers().debugInst__setByUser__;
531
}
532
template <> options::debugSygus__option_t::type& Options::ref(
533
    options::debugSygus__option_t)
534
{
535
    return quantifiers().debugSygus;
536
}
537
38777
template <> const options::debugSygus__option_t::type& Options::operator[](
538
    options::debugSygus__option_t) const
539
{
540
38777
  return quantifiers().debugSygus;
541
}
542
template <> bool Options::wasSetByUser(options::debugSygus__option_t) const
543
{
544
  return quantifiers().debugSygus__setByUser__;
545
}
546
14
template <> options::dtStcInduction__option_t::type& Options::ref(
547
    options::dtStcInduction__option_t)
548
{
549
14
    return quantifiers().dtStcInduction;
550
}
551
18930
template <> const options::dtStcInduction__option_t::type& Options::operator[](
552
    options::dtStcInduction__option_t) const
553
{
554
18930
  return quantifiers().dtStcInduction;
555
}
556
14
template <> bool Options::wasSetByUser(options::dtStcInduction__option_t) const
557
{
558
14
  return quantifiers().dtStcInduction__setByUser__;
559
}
560
template <> options::dtVarExpandQuant__option_t::type& Options::ref(
561
    options::dtVarExpandQuant__option_t)
562
{
563
    return quantifiers().dtVarExpandQuant;
564
}
565
37
template <> const options::dtVarExpandQuant__option_t::type& Options::operator[](
566
    options::dtVarExpandQuant__option_t) const
567
{
568
37
  return quantifiers().dtVarExpandQuant;
569
}
570
template <> bool Options::wasSetByUser(options::dtVarExpandQuant__option_t) const
571
{
572
  return quantifiers().dtVarExpandQuant__setByUser__;
573
}
574
282
template <> options::eMatching__option_t::type& Options::ref(
575
    options::eMatching__option_t)
576
{
577
282
    return quantifiers().eMatching;
578
}
579
6440
template <> const options::eMatching__option_t::type& Options::operator[](
580
    options::eMatching__option_t) const
581
{
582
6440
  return quantifiers().eMatching;
583
}
584
282
template <> bool Options::wasSetByUser(options::eMatching__option_t) const
585
{
586
282
  return quantifiers().eMatching__setByUser__;
587
}
588
template <> options::elimTautQuant__option_t::type& Options::ref(
589
    options::elimTautQuant__option_t)
590
{
591
    return quantifiers().elimTautQuant;
592
}
593
562164
template <> const options::elimTautQuant__option_t::type& Options::operator[](
594
    options::elimTautQuant__option_t) const
595
{
596
562164
  return quantifiers().elimTautQuant;
597
}
598
template <> bool Options::wasSetByUser(options::elimTautQuant__option_t) const
599
{
600
  return quantifiers().elimTautQuant__setByUser__;
601
}
602
template <> options::extRewriteQuant__option_t::type& Options::ref(
603
    options::extRewriteQuant__option_t)
604
{
605
    return quantifiers().extRewriteQuant;
606
}
607
117995
template <> const options::extRewriteQuant__option_t::type& Options::operator[](
608
    options::extRewriteQuant__option_t) const
609
{
610
117995
  return quantifiers().extRewriteQuant;
611
}
612
template <> bool Options::wasSetByUser(options::extRewriteQuant__option_t) const
613
{
614
  return quantifiers().extRewriteQuant__setByUser__;
615
}
616
93
template <> options::finiteModelFind__option_t::type& Options::ref(
617
    options::finiteModelFind__option_t)
618
{
619
93
    return quantifiers().finiteModelFind;
620
}
621
9566477
template <> const options::finiteModelFind__option_t::type& Options::operator[](
622
    options::finiteModelFind__option_t) const
623
{
624
9566477
  return quantifiers().finiteModelFind;
625
}
626
69
template <> bool Options::wasSetByUser(options::finiteModelFind__option_t) const
627
{
628
69
  return quantifiers().finiteModelFind__setByUser__;
629
}
630
1060
template <> options::fmfBound__option_t::type& Options::ref(
631
    options::fmfBound__option_t)
632
{
633
1060
    return quantifiers().fmfBound;
634
}
635
46621
template <> const options::fmfBound__option_t::type& Options::operator[](
636
    options::fmfBound__option_t) const
637
{
638
46621
  return quantifiers().fmfBound;
639
}
640
1044
template <> bool Options::wasSetByUser(options::fmfBound__option_t) const
641
{
642
1044
  return quantifiers().fmfBound__setByUser__;
643
}
644
template <> options::fmfBoundInt__option_t::type& Options::ref(
645
    options::fmfBoundInt__option_t)
646
{
647
    return quantifiers().fmfBoundInt;
648
}
649
14
template <> const options::fmfBoundInt__option_t::type& Options::operator[](
650
    options::fmfBoundInt__option_t) const
651
{
652
14
  return quantifiers().fmfBoundInt;
653
}
654
9456
template <> bool Options::wasSetByUser(options::fmfBoundInt__option_t) const
655
{
656
9456
  return quantifiers().fmfBoundInt__setByUser__;
657
}
658
template <> options::fmfBoundLazy__option_t::type& Options::ref(
659
    options::fmfBoundLazy__option_t)
660
{
661
    return quantifiers().fmfBoundLazy;
662
}
663
335
template <> const options::fmfBoundLazy__option_t::type& Options::operator[](
664
    options::fmfBoundLazy__option_t) const
665
{
666
335
  return quantifiers().fmfBoundLazy;
667
}
668
9460
template <> bool Options::wasSetByUser(options::fmfBoundLazy__option_t) const
669
{
670
9460
  return quantifiers().fmfBoundLazy__setByUser__;
671
}
672
template <> options::fmfFmcSimple__option_t::type& Options::ref(
673
    options::fmfFmcSimple__option_t)
674
{
675
    return quantifiers().fmfFmcSimple;
676
}
677
46970
template <> const options::fmfFmcSimple__option_t::type& Options::operator[](
678
    options::fmfFmcSimple__option_t) const
679
{
680
46970
  return quantifiers().fmfFmcSimple;
681
}
682
template <> bool Options::wasSetByUser(options::fmfFmcSimple__option_t) const
683
{
684
  return quantifiers().fmfFmcSimple__setByUser__;
685
}
686
template <> options::fmfFreshDistConst__option_t::type& Options::ref(
687
    options::fmfFreshDistConst__option_t)
688
{
689
    return quantifiers().fmfFreshDistConst;
690
}
691
517
template <> const options::fmfFreshDistConst__option_t::type& Options::operator[](
692
    options::fmfFreshDistConst__option_t) const
693
{
694
517
  return quantifiers().fmfFreshDistConst;
695
}
696
template <> bool Options::wasSetByUser(options::fmfFreshDistConst__option_t) const
697
{
698
  return quantifiers().fmfFreshDistConst__setByUser__;
699
}
700
12
template <> options::fmfFunWellDefined__option_t::type& Options::ref(
701
    options::fmfFunWellDefined__option_t)
702
{
703
12
    return quantifiers().fmfFunWellDefined;
704
}
705
16785
template <> const options::fmfFunWellDefined__option_t::type& Options::operator[](
706
    options::fmfFunWellDefined__option_t) const
707
{
708
16785
  return quantifiers().fmfFunWellDefined;
709
}
710
12
template <> bool Options::wasSetByUser(options::fmfFunWellDefined__option_t) const
711
{
712
12
  return quantifiers().fmfFunWellDefined__setByUser__;
713
}
714
template <> options::fmfFunWellDefinedRelevant__option_t::type& Options::ref(
715
    options::fmfFunWellDefinedRelevant__option_t)
716
{
717
    return quantifiers().fmfFunWellDefinedRelevant;
718
}
719
21392
template <> const options::fmfFunWellDefinedRelevant__option_t::type& Options::operator[](
720
    options::fmfFunWellDefinedRelevant__option_t) const
721
{
722
21392
  return quantifiers().fmfFunWellDefinedRelevant;
723
}
724
template <> bool Options::wasSetByUser(options::fmfFunWellDefinedRelevant__option_t) const
725
{
726
  return quantifiers().fmfFunWellDefinedRelevant__setByUser__;
727
}
728
template <> options::fmfInstEngine__option_t::type& Options::ref(
729
    options::fmfInstEngine__option_t)
730
{
731
    return quantifiers().fmfInstEngine;
732
}
733
546
template <> const options::fmfInstEngine__option_t::type& Options::operator[](
734
    options::fmfInstEngine__option_t) const
735
{
736
546
  return quantifiers().fmfInstEngine;
737
}
738
template <> bool Options::wasSetByUser(options::fmfInstEngine__option_t) const
739
{
740
  return quantifiers().fmfInstEngine__setByUser__;
741
}
742
template <> options::fmfTypeCompletionThresh__option_t::type& Options::ref(
743
    options::fmfTypeCompletionThresh__option_t)
744
{
745
    return quantifiers().fmfTypeCompletionThresh;
746
}
747
9460
template <> const options::fmfTypeCompletionThresh__option_t::type& Options::operator[](
748
    options::fmfTypeCompletionThresh__option_t) const
749
{
750
9460
  return quantifiers().fmfTypeCompletionThresh;
751
}
752
template <> bool Options::wasSetByUser(options::fmfTypeCompletionThresh__option_t) const
753
{
754
  return quantifiers().fmfTypeCompletionThresh__setByUser__;
755
}
756
template <> options::fullSaturateInterleave__option_t::type& Options::ref(
757
    options::fullSaturateInterleave__option_t)
758
{
759
    return quantifiers().fullSaturateInterleave;
760
}
761
19507
template <> const options::fullSaturateInterleave__option_t::type& Options::operator[](
762
    options::fullSaturateInterleave__option_t) const
763
{
764
19507
  return quantifiers().fullSaturateInterleave;
765
}
766
template <> bool Options::wasSetByUser(options::fullSaturateInterleave__option_t) const
767
{
768
  return quantifiers().fullSaturateInterleave__setByUser__;
769
}
770
template <> options::fullSaturateStratify__option_t::type& Options::ref(
771
    options::fullSaturateStratify__option_t)
772
{
773
    return quantifiers().fullSaturateStratify;
774
}
775
1327
template <> const options::fullSaturateStratify__option_t::type& Options::operator[](
776
    options::fullSaturateStratify__option_t) const
777
{
778
1327
  return quantifiers().fullSaturateStratify;
779
}
780
template <> bool Options::wasSetByUser(options::fullSaturateStratify__option_t) const
781
{
782
  return quantifiers().fullSaturateStratify__setByUser__;
783
}
784
template <> options::fullSaturateSum__option_t::type& Options::ref(
785
    options::fullSaturateSum__option_t)
786
{
787
    return quantifiers().fullSaturateSum;
788
}
789
1924
template <> const options::fullSaturateSum__option_t::type& Options::operator[](
790
    options::fullSaturateSum__option_t) const
791
{
792
1924
  return quantifiers().fullSaturateSum;
793
}
794
template <> bool Options::wasSetByUser(options::fullSaturateSum__option_t) const
795
{
796
  return quantifiers().fullSaturateSum__setByUser__;
797
}
798
template <> options::fullSaturateQuant__option_t::type& Options::ref(
799
    options::fullSaturateQuant__option_t)
800
{
801
    return quantifiers().fullSaturateQuant;
802
}
803
19590
template <> const options::fullSaturateQuant__option_t::type& Options::operator[](
804
    options::fullSaturateQuant__option_t) const
805
{
806
19590
  return quantifiers().fullSaturateQuant;
807
}
808
template <> bool Options::wasSetByUser(options::fullSaturateQuant__option_t) const
809
{
810
  return quantifiers().fullSaturateQuant__setByUser__;
811
}
812
template <> options::fullSaturateLimit__option_t::type& Options::ref(
813
    options::fullSaturateLimit__option_t)
814
{
815
    return quantifiers().fullSaturateLimit;
816
}
817
83
template <> const options::fullSaturateLimit__option_t::type& Options::operator[](
818
    options::fullSaturateLimit__option_t) const
819
{
820
83
  return quantifiers().fullSaturateLimit;
821
}
822
template <> bool Options::wasSetByUser(options::fullSaturateLimit__option_t) const
823
{
824
  return quantifiers().fullSaturateLimit__setByUser__;
825
}
826
template <> options::fullSaturateQuantRd__option_t::type& Options::ref(
827
    options::fullSaturateQuantRd__option_t)
828
{
829
    return quantifiers().fullSaturateQuantRd;
830
}
831
118
template <> const options::fullSaturateQuantRd__option_t::type& Options::operator[](
832
    options::fullSaturateQuantRd__option_t) const
833
{
834
118
  return quantifiers().fullSaturateQuantRd;
835
}
836
template <> bool Options::wasSetByUser(options::fullSaturateQuantRd__option_t) const
837
{
838
  return quantifiers().fullSaturateQuantRd__setByUser__;
839
}
840
2049
template <> options::globalNegate__option_t::type& Options::ref(
841
    options::globalNegate__option_t)
842
{
843
2049
    return quantifiers().globalNegate;
844
}
845
38472
template <> const options::globalNegate__option_t::type& Options::operator[](
846
    options::globalNegate__option_t) const
847
{
848
38472
  return quantifiers().globalNegate;
849
}
850
template <> bool Options::wasSetByUser(options::globalNegate__option_t) const
851
{
852
  return quantifiers().globalNegate__setByUser__;
853
}
854
template <> options::hoElim__option_t::type& Options::ref(
855
    options::hoElim__option_t)
856
{
857
    return quantifiers().hoElim;
858
}
859
26739
template <> const options::hoElim__option_t::type& Options::operator[](
860
    options::hoElim__option_t) const
861
{
862
26739
  return quantifiers().hoElim;
863
}
864
template <> bool Options::wasSetByUser(options::hoElim__option_t) const
865
{
866
  return quantifiers().hoElim__setByUser__;
867
}
868
199
template <> options::hoElimStoreAx__option_t::type& Options::ref(
869
    options::hoElimStoreAx__option_t)
870
{
871
199
    return quantifiers().hoElimStoreAx;
872
}
873
685
template <> const options::hoElimStoreAx__option_t::type& Options::operator[](
874
    options::hoElimStoreAx__option_t) const
875
{
876
685
  return quantifiers().hoElimStoreAx;
877
}
878
200
template <> bool Options::wasSetByUser(options::hoElimStoreAx__option_t) const
879
{
880
200
  return quantifiers().hoElimStoreAx__setByUser__;
881
}
882
template <> options::hoMatching__option_t::type& Options::ref(
883
    options::hoMatching__option_t)
884
{
885
    return quantifiers().hoMatching;
886
}
887
192
template <> const options::hoMatching__option_t::type& Options::operator[](
888
    options::hoMatching__option_t) const
889
{
890
192
  return quantifiers().hoMatching;
891
}
892
template <> bool Options::wasSetByUser(options::hoMatching__option_t) const
893
{
894
  return quantifiers().hoMatching__setByUser__;
895
}
896
template <> options::hoMatchingVarArgPriority__option_t::type& Options::ref(
897
    options::hoMatchingVarArgPriority__option_t)
898
{
899
    return quantifiers().hoMatchingVarArgPriority;
900
}
901
324
template <> const options::hoMatchingVarArgPriority__option_t::type& Options::operator[](
902
    options::hoMatchingVarArgPriority__option_t) const
903
{
904
324
  return quantifiers().hoMatchingVarArgPriority;
905
}
906
template <> bool Options::wasSetByUser(options::hoMatchingVarArgPriority__option_t) const
907
{
908
  return quantifiers().hoMatchingVarArgPriority__setByUser__;
909
}
910
template <> options::hoMergeTermDb__option_t::type& Options::ref(
911
    options::hoMergeTermDb__option_t)
912
{
913
    return quantifiers().hoMergeTermDb;
914
}
915
1033
template <> const options::hoMergeTermDb__option_t::type& Options::operator[](
916
    options::hoMergeTermDb__option_t) const
917
{
918
1033
  return quantifiers().hoMergeTermDb;
919
}
920
template <> bool Options::wasSetByUser(options::hoMergeTermDb__option_t) const
921
{
922
  return quantifiers().hoMergeTermDb__setByUser__;
923
}
924
template <> options::incrementTriggers__option_t::type& Options::ref(
925
    options::incrementTriggers__option_t)
926
{
927
    return quantifiers().incrementTriggers;
928
}
929
6156
template <> const options::incrementTriggers__option_t::type& Options::operator[](
930
    options::incrementTriggers__option_t) const
931
{
932
6156
  return quantifiers().incrementTriggers;
933
}
934
template <> bool Options::wasSetByUser(options::incrementTriggers__option_t) const
935
{
936
  return quantifiers().incrementTriggers__setByUser__;
937
}
938
template <> options::instLevelInputOnly__option_t::type& Options::ref(
939
    options::instLevelInputOnly__option_t)
940
{
941
    return quantifiers().instLevelInputOnly;
942
}
943
7323
template <> const options::instLevelInputOnly__option_t::type& Options::operator[](
944
    options::instLevelInputOnly__option_t) const
945
{
946
7323
  return quantifiers().instLevelInputOnly;
947
}
948
template <> bool Options::wasSetByUser(options::instLevelInputOnly__option_t) const
949
{
950
  return quantifiers().instLevelInputOnly__setByUser__;
951
}
952
template <> options::instMaxLevel__option_t::type& Options::ref(
953
    options::instMaxLevel__option_t)
954
{
955
    return quantifiers().instMaxLevel;
956
}
957
177076
template <> const options::instMaxLevel__option_t::type& Options::operator[](
958
    options::instMaxLevel__option_t) const
959
{
960
177076
  return quantifiers().instMaxLevel;
961
}
962
template <> bool Options::wasSetByUser(options::instMaxLevel__option_t) const
963
{
964
  return quantifiers().instMaxLevel__setByUser__;
965
}
966
1078
template <> options::instNoEntail__option_t::type& Options::ref(
967
    options::instNoEntail__option_t)
968
{
969
1078
    return quantifiers().instNoEntail;
970
}
971
198385
template <> const options::instNoEntail__option_t::type& Options::operator[](
972
    options::instNoEntail__option_t) const
973
{
974
198385
  return quantifiers().instNoEntail;
975
}
976
1078
template <> bool Options::wasSetByUser(options::instNoEntail__option_t) const
977
{
978
1078
  return quantifiers().instNoEntail__setByUser__;
979
}
980
template <> options::instWhenPhase__option_t::type& Options::ref(
981
    options::instWhenPhase__option_t)
982
{
983
    return quantifiers().instWhenPhase;
984
}
985
18920
template <> const options::instWhenPhase__option_t::type& Options::operator[](
986
    options::instWhenPhase__option_t) const
987
{
988
18920
  return quantifiers().instWhenPhase;
989
}
990
template <> bool Options::wasSetByUser(options::instWhenPhase__option_t) const
991
{
992
  return quantifiers().instWhenPhase__setByUser__;
993
}
994
template <> options::instWhenStrictInterleave__option_t::type& Options::ref(
995
    options::instWhenStrictInterleave__option_t)
996
{
997
    return quantifiers().instWhenStrictInterleave;
998
}
999
9749
template <> const options::instWhenStrictInterleave__option_t::type& Options::operator[](
1000
    options::instWhenStrictInterleave__option_t) const
1001
{
1002
9749
  return quantifiers().instWhenStrictInterleave;
1003
}
1004
template <> bool Options::wasSetByUser(options::instWhenStrictInterleave__option_t) const
1005
{
1006
  return quantifiers().instWhenStrictInterleave__setByUser__;
1007
}
1008
template <> options::instWhenTcFirst__option_t::type& Options::ref(
1009
    options::instWhenTcFirst__option_t)
1010
{
1011
    return quantifiers().instWhenTcFirst;
1012
}
1013
9460
template <> const options::instWhenTcFirst__option_t::type& Options::operator[](
1014
    options::instWhenTcFirst__option_t) const
1015
{
1016
9460
  return quantifiers().instWhenTcFirst;
1017
}
1018
template <> bool Options::wasSetByUser(options::instWhenTcFirst__option_t) const
1019
{
1020
  return quantifiers().instWhenTcFirst__setByUser__;
1021
}
1022
273
template <> options::instWhenMode__option_t::type& Options::ref(
1023
    options::instWhenMode__option_t)
1024
{
1025
273
    return quantifiers().instWhenMode;
1026
}
1027
486510
template <> const options::instWhenMode__option_t::type& Options::operator[](
1028
    options::instWhenMode__option_t) const
1029
{
1030
486510
  return quantifiers().instWhenMode;
1031
}
1032
547
template <> bool Options::wasSetByUser(options::instWhenMode__option_t) const
1033
{
1034
547
  return quantifiers().instWhenMode__setByUser__;
1035
}
1036
14
template <> options::intWfInduction__option_t::type& Options::ref(
1037
    options::intWfInduction__option_t)
1038
{
1039
14
    return quantifiers().intWfInduction;
1040
}
1041
14950
template <> const options::intWfInduction__option_t::type& Options::operator[](
1042
    options::intWfInduction__option_t) const
1043
{
1044
14950
  return quantifiers().intWfInduction;
1045
}
1046
14
template <> bool Options::wasSetByUser(options::intWfInduction__option_t) const
1047
{
1048
14
  return quantifiers().intWfInduction__setByUser__;
1049
}
1050
14
template <> options::iteDtTesterSplitQuant__option_t::type& Options::ref(
1051
    options::iteDtTesterSplitQuant__option_t)
1052
{
1053
14
    return quantifiers().iteDtTesterSplitQuant;
1054
}
1055
214688
template <> const options::iteDtTesterSplitQuant__option_t::type& Options::operator[](
1056
    options::iteDtTesterSplitQuant__option_t) const
1057
{
1058
214688
  return quantifiers().iteDtTesterSplitQuant;
1059
}
1060
14
template <> bool Options::wasSetByUser(options::iteDtTesterSplitQuant__option_t) const
1061
{
1062
14
  return quantifiers().iteDtTesterSplitQuant__setByUser__;
1063
}
1064
14
template <> options::iteLiftQuant__option_t::type& Options::ref(
1065
    options::iteLiftQuant__option_t)
1066
{
1067
14
    return quantifiers().iteLiftQuant;
1068
}
1069
308859
template <> const options::iteLiftQuant__option_t::type& Options::operator[](
1070
    options::iteLiftQuant__option_t) const
1071
{
1072
308859
  return quantifiers().iteLiftQuant;
1073
}
1074
14
template <> bool Options::wasSetByUser(options::iteLiftQuant__option_t) const
1075
{
1076
14
  return quantifiers().iteLiftQuant__setByUser__;
1077
}
1078
template <> options::literalMatchMode__option_t::type& Options::ref(
1079
    options::literalMatchMode__option_t)
1080
{
1081
    return quantifiers().literalMatchMode;
1082
}
1083
8731
template <> const options::literalMatchMode__option_t::type& Options::operator[](
1084
    options::literalMatchMode__option_t) const
1085
{
1086
8731
  return quantifiers().literalMatchMode;
1087
}
1088
template <> bool Options::wasSetByUser(options::literalMatchMode__option_t) const
1089
{
1090
  return quantifiers().literalMatchMode__setByUser__;
1091
}
1092
813
template <> options::macrosQuant__option_t::type& Options::ref(
1093
    options::macrosQuant__option_t)
1094
{
1095
813
    return quantifiers().macrosQuant;
1096
}
1097
9660
template <> const options::macrosQuant__option_t::type& Options::operator[](
1098
    options::macrosQuant__option_t) const
1099
{
1100
9660
  return quantifiers().macrosQuant;
1101
}
1102
813
template <> bool Options::wasSetByUser(options::macrosQuant__option_t) const
1103
{
1104
813
  return quantifiers().macrosQuant__setByUser__;
1105
}
1106
template <> options::macrosQuantMode__option_t::type& Options::ref(
1107
    options::macrosQuantMode__option_t)
1108
{
1109
    return quantifiers().macrosQuantMode;
1110
}
1111
46
template <> const options::macrosQuantMode__option_t::type& Options::operator[](
1112
    options::macrosQuantMode__option_t) const
1113
{
1114
46
  return quantifiers().macrosQuantMode;
1115
}
1116
template <> bool Options::wasSetByUser(options::macrosQuantMode__option_t) const
1117
{
1118
  return quantifiers().macrosQuantMode__setByUser__;
1119
}
1120
template <> options::mbqiInterleave__option_t::type& Options::ref(
1121
    options::mbqiInterleave__option_t)
1122
{
1123
    return quantifiers().mbqiInterleave;
1124
}
1125
6806
template <> const options::mbqiInterleave__option_t::type& Options::operator[](
1126
    options::mbqiInterleave__option_t) const
1127
{
1128
6806
  return quantifiers().mbqiInterleave;
1129
}
1130
template <> bool Options::wasSetByUser(options::mbqiInterleave__option_t) const
1131
{
1132
  return quantifiers().mbqiInterleave__setByUser__;
1133
}
1134
template <> options::fmfOneInstPerRound__option_t::type& Options::ref(
1135
    options::fmfOneInstPerRound__option_t)
1136
{
1137
    return quantifiers().fmfOneInstPerRound;
1138
}
1139
5922
template <> const options::fmfOneInstPerRound__option_t::type& Options::operator[](
1140
    options::fmfOneInstPerRound__option_t) const
1141
{
1142
5922
  return quantifiers().fmfOneInstPerRound;
1143
}
1144
template <> bool Options::wasSetByUser(options::fmfOneInstPerRound__option_t) const
1145
{
1146
  return quantifiers().fmfOneInstPerRound__setByUser__;
1147
}
1148
1235
template <> options::mbqiMode__option_t::type& Options::ref(
1149
    options::mbqiMode__option_t)
1150
{
1151
1235
    return quantifiers().mbqiMode;
1152
}
1153
43470
template <> const options::mbqiMode__option_t::type& Options::operator[](
1154
    options::mbqiMode__option_t) const
1155
{
1156
43470
  return quantifiers().mbqiMode;
1157
}
1158
1098
template <> bool Options::wasSetByUser(options::mbqiMode__option_t) const
1159
{
1160
1098
  return quantifiers().mbqiMode__setByUser__;
1161
}
1162
685
template <> options::miniscopeQuant__option_t::type& Options::ref(
1163
    options::miniscopeQuant__option_t)
1164
{
1165
685
    return quantifiers().miniscopeQuant;
1166
}
1167
1238
template <> const options::miniscopeQuant__option_t::type& Options::operator[](
1168
    options::miniscopeQuant__option_t) const
1169
{
1170
1238
  return quantifiers().miniscopeQuant;
1171
}
1172
813
template <> bool Options::wasSetByUser(options::miniscopeQuant__option_t) const
1173
{
1174
813
  return quantifiers().miniscopeQuant__setByUser__;
1175
}
1176
687
template <> options::miniscopeQuantFreeVar__option_t::type& Options::ref(
1177
    options::miniscopeQuantFreeVar__option_t)
1178
{
1179
687
    return quantifiers().miniscopeQuantFreeVar;
1180
}
1181
1196
template <> const options::miniscopeQuantFreeVar__option_t::type& Options::operator[](
1182
    options::miniscopeQuantFreeVar__option_t) const
1183
{
1184
1196
  return quantifiers().miniscopeQuantFreeVar;
1185
}
1186
813
template <> bool Options::wasSetByUser(options::miniscopeQuantFreeVar__option_t) const
1187
{
1188
813
  return quantifiers().miniscopeQuantFreeVar__setByUser__;
1189
}
1190
template <> options::multiTriggerCache__option_t::type& Options::ref(
1191
    options::multiTriggerCache__option_t)
1192
{
1193
    return quantifiers().multiTriggerCache;
1194
}
1195
1276
template <> const options::multiTriggerCache__option_t::type& Options::operator[](
1196
    options::multiTriggerCache__option_t) const
1197
{
1198
1276
  return quantifiers().multiTriggerCache;
1199
}
1200
template <> bool Options::wasSetByUser(options::multiTriggerCache__option_t) const
1201
{
1202
  return quantifiers().multiTriggerCache__setByUser__;
1203
}
1204
template <> options::multiTriggerLinear__option_t::type& Options::ref(
1205
    options::multiTriggerLinear__option_t)
1206
{
1207
    return quantifiers().multiTriggerLinear;
1208
}
1209
19249
template <> const options::multiTriggerLinear__option_t::type& Options::operator[](
1210
    options::multiTriggerLinear__option_t) const
1211
{
1212
19249
  return quantifiers().multiTriggerLinear;
1213
}
1214
template <> bool Options::wasSetByUser(options::multiTriggerLinear__option_t) const
1215
{
1216
  return quantifiers().multiTriggerLinear__setByUser__;
1217
}
1218
template <> options::multiTriggerPriority__option_t::type& Options::ref(
1219
    options::multiTriggerPriority__option_t)
1220
{
1221
    return quantifiers().multiTriggerPriority;
1222
}
1223
8498
template <> const options::multiTriggerPriority__option_t::type& Options::operator[](
1224
    options::multiTriggerPriority__option_t) const
1225
{
1226
8498
  return quantifiers().multiTriggerPriority;
1227
}
1228
template <> bool Options::wasSetByUser(options::multiTriggerPriority__option_t) const
1229
{
1230
  return quantifiers().multiTriggerPriority__setByUser__;
1231
}
1232
template <> options::multiTriggerWhenSingle__option_t::type& Options::ref(
1233
    options::multiTriggerWhenSingle__option_t)
1234
{
1235
    return quantifiers().multiTriggerWhenSingle;
1236
}
1237
13710
template <> const options::multiTriggerWhenSingle__option_t::type& Options::operator[](
1238
    options::multiTriggerWhenSingle__option_t) const
1239
{
1240
13710
  return quantifiers().multiTriggerWhenSingle;
1241
}
1242
template <> bool Options::wasSetByUser(options::multiTriggerWhenSingle__option_t) const
1243
{
1244
  return quantifiers().multiTriggerWhenSingle__setByUser__;
1245
}
1246
template <> options::partialTriggers__option_t::type& Options::ref(
1247
    options::partialTriggers__option_t)
1248
{
1249
    return quantifiers().partialTriggers;
1250
}
1251
37600
template <> const options::partialTriggers__option_t::type& Options::operator[](
1252
    options::partialTriggers__option_t) const
1253
{
1254
37600
  return quantifiers().partialTriggers;
1255
}
1256
template <> bool Options::wasSetByUser(options::partialTriggers__option_t) const
1257
{
1258
  return quantifiers().partialTriggers__setByUser__;
1259
}
1260
template <> options::poolInst__option_t::type& Options::ref(
1261
    options::poolInst__option_t)
1262
{
1263
    return quantifiers().poolInst;
1264
}
1265
6414
template <> const options::poolInst__option_t::type& Options::operator[](
1266
    options::poolInst__option_t) const
1267
{
1268
6414
  return quantifiers().poolInst;
1269
}
1270
template <> bool Options::wasSetByUser(options::poolInst__option_t) const
1271
{
1272
  return quantifiers().poolInst__setByUser__;
1273
}
1274
91
template <> options::preSkolemQuant__option_t::type& Options::ref(
1275
    options::preSkolemQuant__option_t)
1276
{
1277
91
    return quantifiers().preSkolemQuant;
1278
}
1279
94564
template <> const options::preSkolemQuant__option_t::type& Options::operator[](
1280
    options::preSkolemQuant__option_t) const
1281
{
1282
94564
  return quantifiers().preSkolemQuant;
1283
}
1284
91
template <> bool Options::wasSetByUser(options::preSkolemQuant__option_t) const
1285
{
1286
91
  return quantifiers().preSkolemQuant__setByUser__;
1287
}
1288
template <> options::preSkolemQuantAgg__option_t::type& Options::ref(
1289
    options::preSkolemQuantAgg__option_t)
1290
{
1291
    return quantifiers().preSkolemQuantAgg;
1292
}
1293
14
template <> const options::preSkolemQuantAgg__option_t::type& Options::operator[](
1294
    options::preSkolemQuantAgg__option_t) const
1295
{
1296
14
  return quantifiers().preSkolemQuantAgg;
1297
}
1298
template <> bool Options::wasSetByUser(options::preSkolemQuantAgg__option_t) const
1299
{
1300
  return quantifiers().preSkolemQuantAgg__setByUser__;
1301
}
1302
88
template <> options::preSkolemQuantNested__option_t::type& Options::ref(
1303
    options::preSkolemQuantNested__option_t)
1304
{
1305
88
    return quantifiers().preSkolemQuantNested;
1306
}
1307
9622
template <> const options::preSkolemQuantNested__option_t::type& Options::operator[](
1308
    options::preSkolemQuantNested__option_t) const
1309
{
1310
9622
  return quantifiers().preSkolemQuantNested;
1311
}
1312
9527
template <> bool Options::wasSetByUser(options::preSkolemQuantNested__option_t) const
1313
{
1314
9527
  return quantifiers().preSkolemQuantNested__setByUser__;
1315
}
1316
30
template <> options::prenexQuantUser__option_t::type& Options::ref(
1317
    options::prenexQuantUser__option_t)
1318
{
1319
30
    return quantifiers().prenexQuantUser;
1320
}
1321
1107
template <> const options::prenexQuantUser__option_t::type& Options::operator[](
1322
    options::prenexQuantUser__option_t) const
1323
{
1324
1107
  return quantifiers().prenexQuantUser;
1325
}
1326
template <> bool Options::wasSetByUser(options::prenexQuantUser__option_t) const
1327
{
1328
  return quantifiers().prenexQuantUser__setByUser__;
1329
}
1330
1104
template <> options::prenexQuant__option_t::type& Options::ref(
1331
    options::prenexQuant__option_t)
1332
{
1333
1104
    return quantifiers().prenexQuant;
1334
}
1335
409167
template <> const options::prenexQuant__option_t::type& Options::operator[](
1336
    options::prenexQuant__option_t) const
1337
{
1338
409167
  return quantifiers().prenexQuant;
1339
}
1340
1104
template <> bool Options::wasSetByUser(options::prenexQuant__option_t) const
1341
{
1342
1104
  return quantifiers().prenexQuant__setByUser__;
1343
}
1344
20
template <> options::purifyTriggers__option_t::type& Options::ref(
1345
    options::purifyTriggers__option_t)
1346
{
1347
20
    return quantifiers().purifyTriggers;
1348
}
1349
59067
template <> const options::purifyTriggers__option_t::type& Options::operator[](
1350
    options::purifyTriggers__option_t) const
1351
{
1352
59067
  return quantifiers().purifyTriggers;
1353
}
1354
20
template <> bool Options::wasSetByUser(options::purifyTriggers__option_t) const
1355
{
1356
20
  return quantifiers().purifyTriggers__setByUser__;
1357
}
1358
template <> options::qcfAllConflict__option_t::type& Options::ref(
1359
    options::qcfAllConflict__option_t)
1360
{
1361
    return quantifiers().qcfAllConflict;
1362
}
1363
887
template <> const options::qcfAllConflict__option_t::type& Options::operator[](
1364
    options::qcfAllConflict__option_t) const
1365
{
1366
887
  return quantifiers().qcfAllConflict;
1367
}
1368
template <> bool Options::wasSetByUser(options::qcfAllConflict__option_t) const
1369
{
1370
  return quantifiers().qcfAllConflict__setByUser__;
1371
}
1372
template <> options::qcfEagerCheckRd__option_t::type& Options::ref(
1373
    options::qcfEagerCheckRd__option_t)
1374
{
1375
    return quantifiers().qcfEagerCheckRd;
1376
}
1377
17570
template <> const options::qcfEagerCheckRd__option_t::type& Options::operator[](
1378
    options::qcfEagerCheckRd__option_t) const
1379
{
1380
17570
  return quantifiers().qcfEagerCheckRd;
1381
}
1382
template <> bool Options::wasSetByUser(options::qcfEagerCheckRd__option_t) const
1383
{
1384
  return quantifiers().qcfEagerCheckRd__setByUser__;
1385
}
1386
template <> options::qcfEagerTest__option_t::type& Options::ref(
1387
    options::qcfEagerTest__option_t)
1388
{
1389
    return quantifiers().qcfEagerTest;
1390
}
1391
1431330
template <> const options::qcfEagerTest__option_t::type& Options::operator[](
1392
    options::qcfEagerTest__option_t) const
1393
{
1394
1431330
  return quantifiers().qcfEagerTest;
1395
}
1396
template <> bool Options::wasSetByUser(options::qcfEagerTest__option_t) const
1397
{
1398
  return quantifiers().qcfEagerTest__setByUser__;
1399
}
1400
template <> options::qcfNestedConflict__option_t::type& Options::ref(
1401
    options::qcfNestedConflict__option_t)
1402
{
1403
    return quantifiers().qcfNestedConflict;
1404
}
1405
3365
template <> const options::qcfNestedConflict__option_t::type& Options::operator[](
1406
    options::qcfNestedConflict__option_t) const
1407
{
1408
3365
  return quantifiers().qcfNestedConflict;
1409
}
1410
template <> bool Options::wasSetByUser(options::qcfNestedConflict__option_t) const
1411
{
1412
  return quantifiers().qcfNestedConflict__setByUser__;
1413
}
1414
template <> options::qcfSkipRd__option_t::type& Options::ref(
1415
    options::qcfSkipRd__option_t)
1416
{
1417
    return quantifiers().qcfSkipRd;
1418
}
1419
17570
template <> const options::qcfSkipRd__option_t::type& Options::operator[](
1420
    options::qcfSkipRd__option_t) const
1421
{
1422
17570
  return quantifiers().qcfSkipRd;
1423
}
1424
template <> bool Options::wasSetByUser(options::qcfSkipRd__option_t) const
1425
{
1426
  return quantifiers().qcfSkipRd__setByUser__;
1427
}
1428
template <> options::qcfTConstraint__option_t::type& Options::ref(
1429
    options::qcfTConstraint__option_t)
1430
{
1431
    return quantifiers().qcfTConstraint;
1432
}
1433
209933
template <> const options::qcfTConstraint__option_t::type& Options::operator[](
1434
    options::qcfTConstraint__option_t) const
1435
{
1436
209933
  return quantifiers().qcfTConstraint;
1437
}
1438
template <> bool Options::wasSetByUser(options::qcfTConstraint__option_t) const
1439
{
1440
  return quantifiers().qcfTConstraint__setByUser__;
1441
}
1442
template <> options::qcfVoExp__option_t::type& Options::ref(
1443
    options::qcfVoExp__option_t)
1444
{
1445
    return quantifiers().qcfVoExp;
1446
}
1447
374692
template <> const options::qcfVoExp__option_t::type& Options::operator[](
1448
    options::qcfVoExp__option_t) const
1449
{
1450
374692
  return quantifiers().qcfVoExp;
1451
}
1452
template <> bool Options::wasSetByUser(options::qcfVoExp__option_t) const
1453
{
1454
  return quantifiers().qcfVoExp__setByUser__;
1455
}
1456
template <> options::quantAlphaEquiv__option_t::type& Options::ref(
1457
    options::quantAlphaEquiv__option_t)
1458
{
1459
    return quantifiers().quantAlphaEquiv;
1460
}
1461
6414
template <> const options::quantAlphaEquiv__option_t::type& Options::operator[](
1462
    options::quantAlphaEquiv__option_t) const
1463
{
1464
6414
  return quantifiers().quantAlphaEquiv;
1465
}
1466
template <> bool Options::wasSetByUser(options::quantAlphaEquiv__option_t) const
1467
{
1468
  return quantifiers().quantAlphaEquiv__setByUser__;
1469
}
1470
1086
template <> options::quantConflictFind__option_t::type& Options::ref(
1471
    options::quantConflictFind__option_t)
1472
{
1473
1086
    return quantifiers().quantConflictFind;
1474
}
1475
81315
template <> const options::quantConflictFind__option_t::type& Options::operator[](
1476
    options::quantConflictFind__option_t) const
1477
{
1478
81315
  return quantifiers().quantConflictFind;
1479
}
1480
1078
template <> bool Options::wasSetByUser(options::quantConflictFind__option_t) const
1481
{
1482
1078
  return quantifiers().quantConflictFind__setByUser__;
1483
}
1484
template <> options::qcfMode__option_t::type& Options::ref(
1485
    options::qcfMode__option_t)
1486
{
1487
    return quantifiers().qcfMode;
1488
}
1489
14028
template <> const options::qcfMode__option_t::type& Options::operator[](
1490
    options::qcfMode__option_t) const
1491
{
1492
14028
  return quantifiers().qcfMode;
1493
}
1494
9460
template <> bool Options::wasSetByUser(options::qcfMode__option_t) const
1495
{
1496
9460
  return quantifiers().qcfMode__setByUser__;
1497
}
1498
template <> options::qcfWhenMode__option_t::type& Options::ref(
1499
    options::qcfWhenMode__option_t)
1500
{
1501
    return quantifiers().qcfWhenMode;
1502
}
1503
74897
template <> const options::qcfWhenMode__option_t::type& Options::operator[](
1504
    options::qcfWhenMode__option_t) const
1505
{
1506
74897
  return quantifiers().qcfWhenMode;
1507
}
1508
template <> bool Options::wasSetByUser(options::qcfWhenMode__option_t) const
1509
{
1510
  return quantifiers().qcfWhenMode__setByUser__;
1511
}
1512
4557
template <> options::quantDynamicSplit__option_t::type& Options::ref(
1513
    options::quantDynamicSplit__option_t)
1514
{
1515
4557
    return quantifiers().quantDynamicSplit;
1516
}
1517
15248
template <> const options::quantDynamicSplit__option_t::type& Options::operator[](
1518
    options::quantDynamicSplit__option_t) const
1519
{
1520
15248
  return quantifiers().quantDynamicSplit;
1521
}
1522
282
template <> bool Options::wasSetByUser(options::quantDynamicSplit__option_t) const
1523
{
1524
282
  return quantifiers().quantDynamicSplit__setByUser__;
1525
}
1526
template <> options::quantFunWellDefined__option_t::type& Options::ref(
1527
    options::quantFunWellDefined__option_t)
1528
{
1529
    return quantifiers().quantFunWellDefined;
1530
}
1531
10771
template <> const options::quantFunWellDefined__option_t::type& Options::operator[](
1532
    options::quantFunWellDefined__option_t) const
1533
{
1534
10771
  return quantifiers().quantFunWellDefined;
1535
}
1536
template <> bool Options::wasSetByUser(options::quantFunWellDefined__option_t) const
1537
{
1538
  return quantifiers().quantFunWellDefined__setByUser__;
1539
}
1540
template <> options::quantInduction__option_t::type& Options::ref(
1541
    options::quantInduction__option_t)
1542
{
1543
    return quantifiers().quantInduction;
1544
}
1545
9460
template <> const options::quantInduction__option_t::type& Options::operator[](
1546
    options::quantInduction__option_t) const
1547
{
1548
9460
  return quantifiers().quantInduction;
1549
}
1550
template <> bool Options::wasSetByUser(options::quantInduction__option_t) const
1551
{
1552
  return quantifiers().quantInduction__setByUser__;
1553
}
1554
template <> options::quantRepMode__option_t::type& Options::ref(
1555
    options::quantRepMode__option_t)
1556
{
1557
    return quantifiers().quantRepMode;
1558
}
1559
121873
template <> const options::quantRepMode__option_t::type& Options::operator[](
1560
    options::quantRepMode__option_t) const
1561
{
1562
121873
  return quantifiers().quantRepMode;
1563
}
1564
template <> bool Options::wasSetByUser(options::quantRepMode__option_t) const
1565
{
1566
  return quantifiers().quantRepMode__setByUser__;
1567
}
1568
687
template <> options::quantSplit__option_t::type& Options::ref(
1569
    options::quantSplit__option_t)
1570
{
1571
687
    return quantifiers().quantSplit;
1572
}
1573
43178
template <> const options::quantSplit__option_t::type& Options::operator[](
1574
    options::quantSplit__option_t) const
1575
{
1576
43178
  return quantifiers().quantSplit;
1577
}
1578
813
template <> bool Options::wasSetByUser(options::quantSplit__option_t) const
1579
{
1580
813
  return quantifiers().quantSplit__setByUser__;
1581
}
1582
template <> options::registerQuantBodyTerms__option_t::type& Options::ref(
1583
    options::registerQuantBodyTerms__option_t)
1584
{
1585
    return quantifiers().registerQuantBodyTerms;
1586
}
1587
75432
template <> const options::registerQuantBodyTerms__option_t::type& Options::operator[](
1588
    options::registerQuantBodyTerms__option_t) const
1589
{
1590
75432
  return quantifiers().registerQuantBodyTerms;
1591
}
1592
template <> bool Options::wasSetByUser(options::registerQuantBodyTerms__option_t) const
1593
{
1594
  return quantifiers().registerQuantBodyTerms__setByUser__;
1595
}
1596
template <> options::relationalTriggers__option_t::type& Options::ref(
1597
    options::relationalTriggers__option_t)
1598
{
1599
    return quantifiers().relationalTriggers;
1600
}
1601
61596
template <> const options::relationalTriggers__option_t::type& Options::operator[](
1602
    options::relationalTriggers__option_t) const
1603
{
1604
61596
  return quantifiers().relationalTriggers;
1605
}
1606
template <> bool Options::wasSetByUser(options::relationalTriggers__option_t) const
1607
{
1608
  return quantifiers().relationalTriggers__setByUser__;
1609
}
1610
template <> options::relevantTriggers__option_t::type& Options::ref(
1611
    options::relevantTriggers__option_t)
1612
{
1613
    return quantifiers().relevantTriggers;
1614
}
1615
28048
template <> const options::relevantTriggers__option_t::type& Options::operator[](
1616
    options::relevantTriggers__option_t) const
1617
{
1618
28048
  return quantifiers().relevantTriggers;
1619
}
1620
template <> bool Options::wasSetByUser(options::relevantTriggers__option_t) const
1621
{
1622
  return quantifiers().relevantTriggers__setByUser__;
1623
}
1624
template <> options::strictTriggers__option_t::type& Options::ref(
1625
    options::strictTriggers__option_t)
1626
{
1627
    return quantifiers().strictTriggers;
1628
}
1629
32170
template <> const options::strictTriggers__option_t::type& Options::operator[](
1630
    options::strictTriggers__option_t) const
1631
{
1632
32170
  return quantifiers().strictTriggers;
1633
}
1634
template <> bool Options::wasSetByUser(options::strictTriggers__option_t) const
1635
{
1636
  return quantifiers().strictTriggers__setByUser__;
1637
}
1638
813
template <> options::sygus__option_t::type& Options::ref(
1639
    options::sygus__option_t)
1640
{
1641
813
    return quantifiers().sygus;
1642
}
1643
30424
template <> const options::sygus__option_t::type& Options::operator[](
1644
    options::sygus__option_t) const
1645
{
1646
30424
  return quantifiers().sygus;
1647
}
1648
template <> bool Options::wasSetByUser(options::sygus__option_t) const
1649
{
1650
  return quantifiers().sygus__setByUser__;
1651
}
1652
template <> options::sygusActiveGenEnumConsts__option_t::type& Options::ref(
1653
    options::sygusActiveGenEnumConsts__option_t)
1654
{
1655
    return quantifiers().sygusActiveGenEnumConsts;
1656
}
1657
16
template <> const options::sygusActiveGenEnumConsts__option_t::type& Options::operator[](
1658
    options::sygusActiveGenEnumConsts__option_t) const
1659
{
1660
16
  return quantifiers().sygusActiveGenEnumConsts;
1661
}
1662
template <> bool Options::wasSetByUser(options::sygusActiveGenEnumConsts__option_t) const
1663
{
1664
  return quantifiers().sygusActiveGenEnumConsts__setByUser__;
1665
}
1666
template <> options::sygusActiveGenMode__option_t::type& Options::ref(
1667
    options::sygusActiveGenMode__option_t)
1668
{
1669
    return quantifiers().sygusActiveGenMode;
1670
}
1671
1044
template <> const options::sygusActiveGenMode__option_t::type& Options::operator[](
1672
    options::sygusActiveGenMode__option_t) const
1673
{
1674
1044
  return quantifiers().sygusActiveGenMode;
1675
}
1676
template <> bool Options::wasSetByUser(options::sygusActiveGenMode__option_t) const
1677
{
1678
  return quantifiers().sygusActiveGenMode__setByUser__;
1679
}
1680
template <> options::sygusAddConstGrammar__option_t::type& Options::ref(
1681
    options::sygusAddConstGrammar__option_t)
1682
{
1683
    return quantifiers().sygusAddConstGrammar;
1684
}
1685
325
template <> const options::sygusAddConstGrammar__option_t::type& Options::operator[](
1686
    options::sygusAddConstGrammar__option_t) const
1687
{
1688
325
  return quantifiers().sygusAddConstGrammar;
1689
}
1690
template <> bool Options::wasSetByUser(options::sygusAddConstGrammar__option_t) const
1691
{
1692
  return quantifiers().sygusAddConstGrammar__setByUser__;
1693
}
1694
template <> options::sygusArgRelevant__option_t::type& Options::ref(
1695
    options::sygusArgRelevant__option_t)
1696
{
1697
    return quantifiers().sygusArgRelevant;
1698
}
1699
325
template <> const options::sygusArgRelevant__option_t::type& Options::operator[](
1700
    options::sygusArgRelevant__option_t) const
1701
{
1702
325
  return quantifiers().sygusArgRelevant;
1703
}
1704
template <> bool Options::wasSetByUser(options::sygusArgRelevant__option_t) const
1705
{
1706
  return quantifiers().sygusArgRelevant__setByUser__;
1707
}
1708
template <> options::sygusInvAutoUnfold__option_t::type& Options::ref(
1709
    options::sygusInvAutoUnfold__option_t)
1710
{
1711
    return quantifiers().sygusInvAutoUnfold;
1712
}
1713
29
template <> const options::sygusInvAutoUnfold__option_t::type& Options::operator[](
1714
    options::sygusInvAutoUnfold__option_t) const
1715
{
1716
29
  return quantifiers().sygusInvAutoUnfold;
1717
}
1718
template <> bool Options::wasSetByUser(options::sygusInvAutoUnfold__option_t) const
1719
{
1720
  return quantifiers().sygusInvAutoUnfold__setByUser__;
1721
}
1722
template <> options::sygusBoolIteReturnConst__option_t::type& Options::ref(
1723
    options::sygusBoolIteReturnConst__option_t)
1724
{
1725
    return quantifiers().sygusBoolIteReturnConst;
1726
}
1727
12
template <> const options::sygusBoolIteReturnConst__option_t::type& Options::operator[](
1728
    options::sygusBoolIteReturnConst__option_t) const
1729
{
1730
12
  return quantifiers().sygusBoolIteReturnConst;
1731
}
1732
template <> bool Options::wasSetByUser(options::sygusBoolIteReturnConst__option_t) const
1733
{
1734
  return quantifiers().sygusBoolIteReturnConst__setByUser__;
1735
}
1736
template <> options::sygusCoreConnective__option_t::type& Options::ref(
1737
    options::sygusCoreConnective__option_t)
1738
{
1739
    return quantifiers().sygusCoreConnective;
1740
}
1741
10990
template <> const options::sygusCoreConnective__option_t::type& Options::operator[](
1742
    options::sygusCoreConnective__option_t) const
1743
{
1744
10990
  return quantifiers().sygusCoreConnective;
1745
}
1746
template <> bool Options::wasSetByUser(options::sygusCoreConnective__option_t) const
1747
{
1748
  return quantifiers().sygusCoreConnective__setByUser__;
1749
}
1750
template <> options::sygusConstRepairAbort__option_t::type& Options::ref(
1751
    options::sygusConstRepairAbort__option_t)
1752
{
1753
    return quantifiers().sygusConstRepairAbort;
1754
}
1755
8
template <> const options::sygusConstRepairAbort__option_t::type& Options::operator[](
1756
    options::sygusConstRepairAbort__option_t) const
1757
{
1758
8
  return quantifiers().sygusConstRepairAbort;
1759
}
1760
template <> bool Options::wasSetByUser(options::sygusConstRepairAbort__option_t) const
1761
{
1762
  return quantifiers().sygusConstRepairAbort__setByUser__;
1763
}
1764
template <> options::sygusEvalOpt__option_t::type& Options::ref(
1765
    options::sygusEvalOpt__option_t)
1766
{
1767
    return quantifiers().sygusEvalOpt;
1768
}
1769
113493
template <> const options::sygusEvalOpt__option_t::type& Options::operator[](
1770
    options::sygusEvalOpt__option_t) const
1771
{
1772
113493
  return quantifiers().sygusEvalOpt;
1773
}
1774
template <> bool Options::wasSetByUser(options::sygusEvalOpt__option_t) const
1775
{
1776
  return quantifiers().sygusEvalOpt__setByUser__;
1777
}
1778
template <> options::sygusEvalUnfold__option_t::type& Options::ref(
1779
    options::sygusEvalUnfold__option_t)
1780
{
1781
    return quantifiers().sygusEvalUnfold;
1782
}
1783
353542
template <> const options::sygusEvalUnfold__option_t::type& Options::operator[](
1784
    options::sygusEvalUnfold__option_t) const
1785
{
1786
353542
  return quantifiers().sygusEvalUnfold;
1787
}
1788
template <> bool Options::wasSetByUser(options::sygusEvalUnfold__option_t) const
1789
{
1790
  return quantifiers().sygusEvalUnfold__setByUser__;
1791
}
1792
template <> options::sygusEvalUnfoldBool__option_t::type& Options::ref(
1793
    options::sygusEvalUnfoldBool__option_t)
1794
{
1795
    return quantifiers().sygusEvalUnfoldBool;
1796
}
1797
10903
template <> const options::sygusEvalUnfoldBool__option_t::type& Options::operator[](
1798
    options::sygusEvalUnfoldBool__option_t) const
1799
{
1800
10903
  return quantifiers().sygusEvalUnfoldBool;
1801
}
1802
template <> bool Options::wasSetByUser(options::sygusEvalUnfoldBool__option_t) const
1803
{
1804
  return quantifiers().sygusEvalUnfoldBool__setByUser__;
1805
}
1806
template <> options::sygusExprMinerCheckTimeout__option_t::type& Options::ref(
1807
    options::sygusExprMinerCheckTimeout__option_t)
1808
{
1809
    return quantifiers().sygusExprMinerCheckTimeout;
1810
}
1811
template <> const options::sygusExprMinerCheckTimeout__option_t::type& Options::operator[](
1812
    options::sygusExprMinerCheckTimeout__option_t) const
1813
{
1814
  return quantifiers().sygusExprMinerCheckTimeout;
1815
}
1816
247
template <> bool Options::wasSetByUser(options::sygusExprMinerCheckTimeout__option_t) const
1817
{
1818
247
  return quantifiers().sygusExprMinerCheckTimeout__setByUser__;
1819
}
1820
template <> options::sygusExtRew__option_t::type& Options::ref(
1821
    options::sygusExtRew__option_t)
1822
{
1823
    return quantifiers().sygusExtRew;
1824
}
1825
211302
template <> const options::sygusExtRew__option_t::type& Options::operator[](
1826
    options::sygusExtRew__option_t) const
1827
{
1828
211302
  return quantifiers().sygusExtRew;
1829
}
1830
template <> bool Options::wasSetByUser(options::sygusExtRew__option_t) const
1831
{
1832
  return quantifiers().sygusExtRew__setByUser__;
1833
}
1834
template <> options::sygusFilterSolRevSubsume__option_t::type& Options::ref(
1835
    options::sygusFilterSolRevSubsume__option_t)
1836
{
1837
    return quantifiers().sygusFilterSolRevSubsume;
1838
}
1839
21
template <> const options::sygusFilterSolRevSubsume__option_t::type& Options::operator[](
1840
    options::sygusFilterSolRevSubsume__option_t) const
1841
{
1842
21
  return quantifiers().sygusFilterSolRevSubsume;
1843
}
1844
template <> bool Options::wasSetByUser(options::sygusFilterSolRevSubsume__option_t) const
1845
{
1846
  return quantifiers().sygusFilterSolRevSubsume__setByUser__;
1847
}
1848
15
template <> options::sygusFilterSolMode__option_t::type& Options::ref(
1849
    options::sygusFilterSolMode__option_t)
1850
{
1851
15
    return quantifiers().sygusFilterSolMode;
1852
}
1853
71
template <> const options::sygusFilterSolMode__option_t::type& Options::operator[](
1854
    options::sygusFilterSolMode__option_t) const
1855
{
1856
71
  return quantifiers().sygusFilterSolMode;
1857
}
1858
15
template <> bool Options::wasSetByUser(options::sygusFilterSolMode__option_t) const
1859
{
1860
15
  return quantifiers().sygusFilterSolMode__setByUser__;
1861
}
1862
template <> options::sygusGrammarConsMode__option_t::type& Options::ref(
1863
    options::sygusGrammarConsMode__option_t)
1864
{
1865
    return quantifiers().sygusGrammarConsMode;
1866
}
1867
659
template <> const options::sygusGrammarConsMode__option_t::type& Options::operator[](
1868
    options::sygusGrammarConsMode__option_t) const
1869
{
1870
659
  return quantifiers().sygusGrammarConsMode;
1871
}
1872
template <> bool Options::wasSetByUser(options::sygusGrammarConsMode__option_t) const
1873
{
1874
  return quantifiers().sygusGrammarConsMode__setByUser__;
1875
}
1876
template <> options::sygusGrammarNorm__option_t::type& Options::ref(
1877
    options::sygusGrammarNorm__option_t)
1878
{
1879
    return quantifiers().sygusGrammarNorm;
1880
}
1881
431
template <> const options::sygusGrammarNorm__option_t::type& Options::operator[](
1882
    options::sygusGrammarNorm__option_t) const
1883
{
1884
431
  return quantifiers().sygusGrammarNorm;
1885
}
1886
template <> bool Options::wasSetByUser(options::sygusGrammarNorm__option_t) const
1887
{
1888
  return quantifiers().sygusGrammarNorm__setByUser__;
1889
}
1890
template <> options::sygusInference__option_t::type& Options::ref(
1891
    options::sygusInference__option_t)
1892
{
1893
    return quantifiers().sygusInference;
1894
}
1895
19612
template <> const options::sygusInference__option_t::type& Options::operator[](
1896
    options::sygusInference__option_t) const
1897
{
1898
19612
  return quantifiers().sygusInference;
1899
}
1900
template <> bool Options::wasSetByUser(options::sygusInference__option_t) const
1901
{
1902
  return quantifiers().sygusInference__setByUser__;
1903
}
1904
template <> options::sygusInst__option_t::type& Options::ref(
1905
    options::sygusInst__option_t)
1906
{
1907
    return quantifiers().sygusInst;
1908
}
1909
28471
template <> const options::sygusInst__option_t::type& Options::operator[](
1910
    options::sygusInst__option_t) const
1911
{
1912
28471
  return quantifiers().sygusInst;
1913
}
1914
template <> bool Options::wasSetByUser(options::sygusInst__option_t) const
1915
{
1916
  return quantifiers().sygusInst__setByUser__;
1917
}
1918
template <> options::sygusInstMode__option_t::type& Options::ref(
1919
    options::sygusInstMode__option_t)
1920
{
1921
    return quantifiers().sygusInstMode;
1922
}
1923
87
template <> const options::sygusInstMode__option_t::type& Options::operator[](
1924
    options::sygusInstMode__option_t) const
1925
{
1926
87
  return quantifiers().sygusInstMode;
1927
}
1928
template <> bool Options::wasSetByUser(options::sygusInstMode__option_t) const
1929
{
1930
  return quantifiers().sygusInstMode__setByUser__;
1931
}
1932
template <> options::sygusInstScope__option_t::type& Options::ref(
1933
    options::sygusInstScope__option_t)
1934
{
1935
    return quantifiers().sygusInstScope;
1936
}
1937
120
template <> const options::sygusInstScope__option_t::type& Options::operator[](
1938
    options::sygusInstScope__option_t) const
1939
{
1940
120
  return quantifiers().sygusInstScope;
1941
}
1942
template <> bool Options::wasSetByUser(options::sygusInstScope__option_t) const
1943
{
1944
  return quantifiers().sygusInstScope__setByUser__;
1945
}
1946
template <> options::sygusInstTermSel__option_t::type& Options::ref(
1947
    options::sygusInstTermSel__option_t)
1948
{
1949
    return quantifiers().sygusInstTermSel;
1950
}
1951
135
template <> const options::sygusInstTermSel__option_t::type& Options::operator[](
1952
    options::sygusInstTermSel__option_t) const
1953
{
1954
135
  return quantifiers().sygusInstTermSel;
1955
}
1956
template <> bool Options::wasSetByUser(options::sygusInstTermSel__option_t) const
1957
{
1958
  return quantifiers().sygusInstTermSel__setByUser__;
1959
}
1960
template <> options::sygusInvTemplWhenSyntax__option_t::type& Options::ref(
1961
    options::sygusInvTemplWhenSyntax__option_t)
1962
{
1963
    return quantifiers().sygusInvTemplWhenSyntax;
1964
}
1965
75
template <> const options::sygusInvTemplWhenSyntax__option_t::type& Options::operator[](
1966
    options::sygusInvTemplWhenSyntax__option_t) const
1967
{
1968
75
  return quantifiers().sygusInvTemplWhenSyntax;
1969
}
1970
template <> bool Options::wasSetByUser(options::sygusInvTemplWhenSyntax__option_t) const
1971
{
1972
  return quantifiers().sygusInvTemplWhenSyntax__setByUser__;
1973
}
1974
25
template <> options::sygusInvTemplMode__option_t::type& Options::ref(
1975
    options::sygusInvTemplMode__option_t)
1976
{
1977
25
    return quantifiers().sygusInvTemplMode;
1978
}
1979
325
template <> const options::sygusInvTemplMode__option_t::type& Options::operator[](
1980
    options::sygusInvTemplMode__option_t) const
1981
{
1982
325
  return quantifiers().sygusInvTemplMode;
1983
}
1984
25
template <> bool Options::wasSetByUser(options::sygusInvTemplMode__option_t) const
1985
{
1986
25
  return quantifiers().sygusInvTemplMode__setByUser__;
1987
}
1988
template <> options::sygusMinGrammar__option_t::type& Options::ref(
1989
    options::sygusMinGrammar__option_t)
1990
{
1991
    return quantifiers().sygusMinGrammar;
1992
}
1993
446
template <> const options::sygusMinGrammar__option_t::type& Options::operator[](
1994
    options::sygusMinGrammar__option_t) const
1995
{
1996
446
  return quantifiers().sygusMinGrammar;
1997
}
1998
template <> bool Options::wasSetByUser(options::sygusMinGrammar__option_t) const
1999
{
2000
  return quantifiers().sygusMinGrammar__setByUser__;
2001
}
2002
25
template <> options::sygusUnifPbe__option_t::type& Options::ref(
2003
    options::sygusUnifPbe__option_t)
2004
{
2005
25
    return quantifiers().sygusUnifPbe;
2006
}
2007
233
template <> const options::sygusUnifPbe__option_t::type& Options::operator[](
2008
    options::sygusUnifPbe__option_t) const
2009
{
2010
233
  return quantifiers().sygusUnifPbe;
2011
}
2012
25
template <> bool Options::wasSetByUser(options::sygusUnifPbe__option_t) const
2013
{
2014
25
  return quantifiers().sygusUnifPbe__setByUser__;
2015
}
2016
template <> options::sygusPbeMultiFair__option_t::type& Options::ref(
2017
    options::sygusPbeMultiFair__option_t)
2018
{
2019
    return quantifiers().sygusPbeMultiFair;
2020
}
2021
4265
template <> const options::sygusPbeMultiFair__option_t::type& Options::operator[](
2022
    options::sygusPbeMultiFair__option_t) const
2023
{
2024
4265
  return quantifiers().sygusPbeMultiFair;
2025
}
2026
template <> bool Options::wasSetByUser(options::sygusPbeMultiFair__option_t) const
2027
{
2028
  return quantifiers().sygusPbeMultiFair__setByUser__;
2029
}
2030
template <> options::sygusPbeMultiFairDiff__option_t::type& Options::ref(
2031
    options::sygusPbeMultiFairDiff__option_t)
2032
{
2033
    return quantifiers().sygusPbeMultiFairDiff;
2034
}
2035
489
template <> const options::sygusPbeMultiFairDiff__option_t::type& Options::operator[](
2036
    options::sygusPbeMultiFairDiff__option_t) const
2037
{
2038
489
  return quantifiers().sygusPbeMultiFairDiff;
2039
}
2040
template <> bool Options::wasSetByUser(options::sygusPbeMultiFairDiff__option_t) const
2041
{
2042
  return quantifiers().sygusPbeMultiFairDiff__setByUser__;
2043
}
2044
template <> options::sygusQePreproc__option_t::type& Options::ref(
2045
    options::sygusQePreproc__option_t)
2046
{
2047
    return quantifiers().sygusQePreproc;
2048
}
2049
658
template <> const options::sygusQePreproc__option_t::type& Options::operator[](
2050
    options::sygusQePreproc__option_t) const
2051
{
2052
658
  return quantifiers().sygusQePreproc;
2053
}
2054
template <> bool Options::wasSetByUser(options::sygusQePreproc__option_t) const
2055
{
2056
  return quantifiers().sygusQePreproc__setByUser__;
2057
}
2058
template <> options::sygusQueryGen__option_t::type& Options::ref(
2059
    options::sygusQueryGen__option_t)
2060
{
2061
    return quantifiers().sygusQueryGen;
2062
}
2063
875
template <> const options::sygusQueryGen__option_t::type& Options::operator[](
2064
    options::sygusQueryGen__option_t) const
2065
{
2066
875
  return quantifiers().sygusQueryGen;
2067
}
2068
template <> bool Options::wasSetByUser(options::sygusQueryGen__option_t) const
2069
{
2070
  return quantifiers().sygusQueryGen__setByUser__;
2071
}
2072
template <> options::sygusQueryGenCheck__option_t::type& Options::ref(
2073
    options::sygusQueryGenCheck__option_t)
2074
{
2075
    return quantifiers().sygusQueryGenCheck;
2076
}
2077
template <> const options::sygusQueryGenCheck__option_t::type& Options::operator[](
2078
    options::sygusQueryGenCheck__option_t) const
2079
{
2080
  return quantifiers().sygusQueryGenCheck;
2081
}
2082
template <> bool Options::wasSetByUser(options::sygusQueryGenCheck__option_t) const
2083
{
2084
  return quantifiers().sygusQueryGenCheck__setByUser__;
2085
}
2086
template <> options::sygusQueryGenDumpFiles__option_t::type& Options::ref(
2087
    options::sygusQueryGenDumpFiles__option_t)
2088
{
2089
    return quantifiers().sygusQueryGenDumpFiles;
2090
}
2091
template <> const options::sygusQueryGenDumpFiles__option_t::type& Options::operator[](
2092
    options::sygusQueryGenDumpFiles__option_t) const
2093
{
2094
  return quantifiers().sygusQueryGenDumpFiles;
2095
}
2096
template <> bool Options::wasSetByUser(options::sygusQueryGenDumpFiles__option_t) const
2097
{
2098
  return quantifiers().sygusQueryGenDumpFiles__setByUser__;
2099
}
2100
template <> options::sygusQueryGenThresh__option_t::type& Options::ref(
2101
    options::sygusQueryGenThresh__option_t)
2102
{
2103
    return quantifiers().sygusQueryGenThresh;
2104
}
2105
template <> const options::sygusQueryGenThresh__option_t::type& Options::operator[](
2106
    options::sygusQueryGenThresh__option_t) const
2107
{
2108
  return quantifiers().sygusQueryGenThresh;
2109
}
2110
template <> bool Options::wasSetByUser(options::sygusQueryGenThresh__option_t) const
2111
{
2112
  return quantifiers().sygusQueryGenThresh__setByUser__;
2113
}
2114
168
template <> options::sygusRecFun__option_t::type& Options::ref(
2115
    options::sygusRecFun__option_t)
2116
{
2117
168
    return quantifiers().sygusRecFun;
2118
}
2119
172307
template <> const options::sygusRecFun__option_t::type& Options::operator[](
2120
    options::sygusRecFun__option_t) const
2121
{
2122
172307
  return quantifiers().sygusRecFun;
2123
}
2124
template <> bool Options::wasSetByUser(options::sygusRecFun__option_t) const
2125
{
2126
  return quantifiers().sygusRecFun__setByUser__;
2127
}
2128
template <> options::sygusRecFunEvalLimit__option_t::type& Options::ref(
2129
    options::sygusRecFunEvalLimit__option_t)
2130
{
2131
    return quantifiers().sygusRecFunEvalLimit;
2132
}
2133
5236
template <> const options::sygusRecFunEvalLimit__option_t::type& Options::operator[](
2134
    options::sygusRecFunEvalLimit__option_t) const
2135
{
2136
5236
  return quantifiers().sygusRecFunEvalLimit;
2137
}
2138
template <> bool Options::wasSetByUser(options::sygusRecFunEvalLimit__option_t) const
2139
{
2140
  return quantifiers().sygusRecFunEvalLimit__setByUser__;
2141
}
2142
template <> options::sygusRepairConst__option_t::type& Options::ref(
2143
    options::sygusRepairConst__option_t)
2144
{
2145
    return quantifiers().sygusRepairConst;
2146
}
2147
40360
template <> const options::sygusRepairConst__option_t::type& Options::operator[](
2148
    options::sygusRepairConst__option_t) const
2149
{
2150
40360
  return quantifiers().sygusRepairConst;
2151
}
2152
template <> bool Options::wasSetByUser(options::sygusRepairConst__option_t) const
2153
{
2154
  return quantifiers().sygusRepairConst__setByUser__;
2155
}
2156
template <> options::sygusRepairConstTimeout__option_t::type& Options::ref(
2157
    options::sygusRepairConstTimeout__option_t)
2158
{
2159
    return quantifiers().sygusRepairConstTimeout;
2160
}
2161
126
template <> const options::sygusRepairConstTimeout__option_t::type& Options::operator[](
2162
    options::sygusRepairConstTimeout__option_t) const
2163
{
2164
126
  return quantifiers().sygusRepairConstTimeout;
2165
}
2166
126
template <> bool Options::wasSetByUser(options::sygusRepairConstTimeout__option_t) const
2167
{
2168
126
  return quantifiers().sygusRepairConstTimeout__setByUser__;
2169
}
2170
template <> options::sygusRew__option_t::type& Options::ref(
2171
    options::sygusRew__option_t)
2172
{
2173
    return quantifiers().sygusRew;
2174
}
2175
813
template <> const options::sygusRew__option_t::type& Options::operator[](
2176
    options::sygusRew__option_t) const
2177
{
2178
813
  return quantifiers().sygusRew;
2179
}
2180
template <> bool Options::wasSetByUser(options::sygusRew__option_t) const
2181
{
2182
  return quantifiers().sygusRew__setByUser__;
2183
}
2184
6
template <> options::sygusRewSynth__option_t::type& Options::ref(
2185
    options::sygusRewSynth__option_t)
2186
{
2187
6
    return quantifiers().sygusRewSynth;
2188
}
2189
1890
template <> const options::sygusRewSynth__option_t::type& Options::operator[](
2190
    options::sygusRewSynth__option_t) const
2191
{
2192
1890
  return quantifiers().sygusRewSynth;
2193
}
2194
template <> bool Options::wasSetByUser(options::sygusRewSynth__option_t) const
2195
{
2196
  return quantifiers().sygusRewSynth__setByUser__;
2197
}
2198
template <> options::sygusRewSynthAccel__option_t::type& Options::ref(
2199
    options::sygusRewSynthAccel__option_t)
2200
{
2201
    return quantifiers().sygusRewSynthAccel;
2202
}
2203
9
template <> const options::sygusRewSynthAccel__option_t::type& Options::operator[](
2204
    options::sygusRewSynthAccel__option_t) const
2205
{
2206
9
  return quantifiers().sygusRewSynthAccel;
2207
}
2208
template <> bool Options::wasSetByUser(options::sygusRewSynthAccel__option_t) const
2209
{
2210
  return quantifiers().sygusRewSynthAccel__setByUser__;
2211
}
2212
template <> options::sygusRewSynthCheck__option_t::type& Options::ref(
2213
    options::sygusRewSynthCheck__option_t)
2214
{
2215
    return quantifiers().sygusRewSynthCheck;
2216
}
2217
6317
template <> const options::sygusRewSynthCheck__option_t::type& Options::operator[](
2218
    options::sygusRewSynthCheck__option_t) const
2219
{
2220
6317
  return quantifiers().sygusRewSynthCheck;
2221
}
2222
template <> bool Options::wasSetByUser(options::sygusRewSynthCheck__option_t) const
2223
{
2224
  return quantifiers().sygusRewSynthCheck__setByUser__;
2225
}
2226
template <> options::sygusRewSynthFilterCong__option_t::type& Options::ref(
2227
    options::sygusRewSynthFilterCong__option_t)
2228
{
2229
    return quantifiers().sygusRewSynthFilterCong;
2230
}
2231
802
template <> const options::sygusRewSynthFilterCong__option_t::type& Options::operator[](
2232
    options::sygusRewSynthFilterCong__option_t) const
2233
{
2234
802
  return quantifiers().sygusRewSynthFilterCong;
2235
}
2236
template <> bool Options::wasSetByUser(options::sygusRewSynthFilterCong__option_t) const
2237
{
2238
  return quantifiers().sygusRewSynthFilterCong__setByUser__;
2239
}
2240
template <> options::sygusRewSynthFilterMatch__option_t::type& Options::ref(
2241
    options::sygusRewSynthFilterMatch__option_t)
2242
{
2243
    return quantifiers().sygusRewSynthFilterMatch;
2244
}
2245
224
template <> const options::sygusRewSynthFilterMatch__option_t::type& Options::operator[](
2246
    options::sygusRewSynthFilterMatch__option_t) const
2247
{
2248
224
  return quantifiers().sygusRewSynthFilterMatch;
2249
}
2250
template <> bool Options::wasSetByUser(options::sygusRewSynthFilterMatch__option_t) const
2251
{
2252
  return quantifiers().sygusRewSynthFilterMatch__setByUser__;
2253
}
2254
template <> options::sygusRewSynthFilterNonLinear__option_t::type& Options::ref(
2255
    options::sygusRewSynthFilterNonLinear__option_t)
2256
{
2257
    return quantifiers().sygusRewSynthFilterNonLinear;
2258
}
2259
464
template <> const options::sygusRewSynthFilterNonLinear__option_t::type& Options::operator[](
2260
    options::sygusRewSynthFilterNonLinear__option_t) const
2261
{
2262
464
  return quantifiers().sygusRewSynthFilterNonLinear;
2263
}
2264
template <> bool Options::wasSetByUser(options::sygusRewSynthFilterNonLinear__option_t) const
2265
{
2266
  return quantifiers().sygusRewSynthFilterNonLinear__setByUser__;
2267
}
2268
template <> options::sygusRewSynthFilterOrder__option_t::type& Options::ref(
2269
    options::sygusRewSynthFilterOrder__option_t)
2270
{
2271
    return quantifiers().sygusRewSynthFilterOrder;
2272
}
2273
696
template <> const options::sygusRewSynthFilterOrder__option_t::type& Options::operator[](
2274
    options::sygusRewSynthFilterOrder__option_t) const
2275
{
2276
696
  return quantifiers().sygusRewSynthFilterOrder;
2277
}
2278
template <> bool Options::wasSetByUser(options::sygusRewSynthFilterOrder__option_t) const
2279
{
2280
  return quantifiers().sygusRewSynthFilterOrder__setByUser__;
2281
}
2282
template <> options::sygusRewSynthInput__option_t::type& Options::ref(
2283
    options::sygusRewSynthInput__option_t)
2284
{
2285
    return quantifiers().sygusRewSynthInput;
2286
}
2287
17447
template <> const options::sygusRewSynthInput__option_t::type& Options::operator[](
2288
    options::sygusRewSynthInput__option_t) const
2289
{
2290
17447
  return quantifiers().sygusRewSynthInput;
2291
}
2292
template <> bool Options::wasSetByUser(options::sygusRewSynthInput__option_t) const
2293
{
2294
  return quantifiers().sygusRewSynthInput__setByUser__;
2295
}
2296
template <> options::sygusRewSynthInputNVars__option_t::type& Options::ref(
2297
    options::sygusRewSynthInputNVars__option_t)
2298
{
2299
    return quantifiers().sygusRewSynthInputNVars;
2300
}
2301
template <> const options::sygusRewSynthInputNVars__option_t::type& Options::operator[](
2302
    options::sygusRewSynthInputNVars__option_t) const
2303
{
2304
  return quantifiers().sygusRewSynthInputNVars;
2305
}
2306
template <> bool Options::wasSetByUser(options::sygusRewSynthInputNVars__option_t) const
2307
{
2308
  return quantifiers().sygusRewSynthInputNVars__setByUser__;
2309
}
2310
template <> options::sygusRewSynthInputUseBool__option_t::type& Options::ref(
2311
    options::sygusRewSynthInputUseBool__option_t)
2312
{
2313
    return quantifiers().sygusRewSynthInputUseBool;
2314
}
2315
template <> const options::sygusRewSynthInputUseBool__option_t::type& Options::operator[](
2316
    options::sygusRewSynthInputUseBool__option_t) const
2317
{
2318
  return quantifiers().sygusRewSynthInputUseBool;
2319
}
2320
template <> bool Options::wasSetByUser(options::sygusRewSynthInputUseBool__option_t) const
2321
{
2322
  return quantifiers().sygusRewSynthInputUseBool__setByUser__;
2323
}
2324
template <> options::sygusRewSynthRec__option_t::type& Options::ref(
2325
    options::sygusRewSynthRec__option_t)
2326
{
2327
    return quantifiers().sygusRewSynthRec;
2328
}
2329
1008
template <> const options::sygusRewSynthRec__option_t::type& Options::operator[](
2330
    options::sygusRewSynthRec__option_t) const
2331
{
2332
1008
  return quantifiers().sygusRewSynthRec;
2333
}
2334
template <> bool Options::wasSetByUser(options::sygusRewSynthRec__option_t) const
2335
{
2336
  return quantifiers().sygusRewSynthRec__setByUser__;
2337
}
2338
6
template <> options::sygusRewVerify__option_t::type& Options::ref(
2339
    options::sygusRewVerify__option_t)
2340
{
2341
6
    return quantifiers().sygusRewVerify;
2342
}
2343
60776
template <> const options::sygusRewVerify__option_t::type& Options::operator[](
2344
    options::sygusRewVerify__option_t) const
2345
{
2346
60776
  return quantifiers().sygusRewVerify;
2347
}
2348
template <> bool Options::wasSetByUser(options::sygusRewVerify__option_t) const
2349
{
2350
  return quantifiers().sygusRewVerify__setByUser__;
2351
}
2352
template <> options::sygusRewVerifyAbort__option_t::type& Options::ref(
2353
    options::sygusRewVerifyAbort__option_t)
2354
{
2355
    return quantifiers().sygusRewVerifyAbort;
2356
}
2357
template <> const options::sygusRewVerifyAbort__option_t::type& Options::operator[](
2358
    options::sygusRewVerifyAbort__option_t) const
2359
{
2360
  return quantifiers().sygusRewVerifyAbort;
2361
}
2362
template <> bool Options::wasSetByUser(options::sygusRewVerifyAbort__option_t) const
2363
{
2364
  return quantifiers().sygusRewVerifyAbort__setByUser__;
2365
}
2366
template <> options::sygusSampleFpUniform__option_t::type& Options::ref(
2367
    options::sygusSampleFpUniform__option_t)
2368
{
2369
    return quantifiers().sygusSampleFpUniform;
2370
}
2371
template <> const options::sygusSampleFpUniform__option_t::type& Options::operator[](
2372
    options::sygusSampleFpUniform__option_t) const
2373
{
2374
  return quantifiers().sygusSampleFpUniform;
2375
}
2376
template <> bool Options::wasSetByUser(options::sygusSampleFpUniform__option_t) const
2377
{
2378
  return quantifiers().sygusSampleFpUniform__setByUser__;
2379
}
2380
template <> options::sygusSampleGrammar__option_t::type& Options::ref(
2381
    options::sygusSampleGrammar__option_t)
2382
{
2383
    return quantifiers().sygusSampleGrammar;
2384
}
2385
331501
template <> const options::sygusSampleGrammar__option_t::type& Options::operator[](
2386
    options::sygusSampleGrammar__option_t) const
2387
{
2388
331501
  return quantifiers().sygusSampleGrammar;
2389
}
2390
template <> bool Options::wasSetByUser(options::sygusSampleGrammar__option_t) const
2391
{
2392
  return quantifiers().sygusSampleGrammar__setByUser__;
2393
}
2394
template <> options::sygusSamples__option_t::type& Options::ref(
2395
    options::sygusSamples__option_t)
2396
{
2397
    return quantifiers().sygusSamples;
2398
}
2399
21
template <> const options::sygusSamples__option_t::type& Options::operator[](
2400
    options::sygusSamples__option_t) const
2401
{
2402
21
  return quantifiers().sygusSamples;
2403
}
2404
template <> bool Options::wasSetByUser(options::sygusSamples__option_t) const
2405
{
2406
  return quantifiers().sygusSamples__setByUser__;
2407
}
2408
template <> options::cegqiSingleInvAbort__option_t::type& Options::ref(
2409
    options::cegqiSingleInvAbort__option_t)
2410
{
2411
    return quantifiers().cegqiSingleInvAbort;
2412
}
2413
228
template <> const options::cegqiSingleInvAbort__option_t::type& Options::operator[](
2414
    options::cegqiSingleInvAbort__option_t) const
2415
{
2416
228
  return quantifiers().cegqiSingleInvAbort;
2417
}
2418
template <> bool Options::wasSetByUser(options::cegqiSingleInvAbort__option_t) const
2419
{
2420
  return quantifiers().cegqiSingleInvAbort__setByUser__;
2421
}
2422
template <> options::cegqiSingleInvPartial__option_t::type& Options::ref(
2423
    options::cegqiSingleInvPartial__option_t)
2424
{
2425
    return quantifiers().cegqiSingleInvPartial;
2426
}
2427
template <> const options::cegqiSingleInvPartial__option_t::type& Options::operator[](
2428
    options::cegqiSingleInvPartial__option_t) const
2429
{
2430
  return quantifiers().cegqiSingleInvPartial;
2431
}
2432
template <> bool Options::wasSetByUser(options::cegqiSingleInvPartial__option_t) const
2433
{
2434
  return quantifiers().cegqiSingleInvPartial__setByUser__;
2435
}
2436
template <> options::cegqiSingleInvReconstructLimit__option_t::type& Options::ref(
2437
    options::cegqiSingleInvReconstructLimit__option_t)
2438
{
2439
    return quantifiers().cegqiSingleInvReconstructLimit;
2440
}
2441
24
template <> const options::cegqiSingleInvReconstructLimit__option_t::type& Options::operator[](
2442
    options::cegqiSingleInvReconstructLimit__option_t) const
2443
{
2444
24
  return quantifiers().cegqiSingleInvReconstructLimit;
2445
}
2446
template <> bool Options::wasSetByUser(options::cegqiSingleInvReconstructLimit__option_t) const
2447
{
2448
  return quantifiers().cegqiSingleInvReconstructLimit__setByUser__;
2449
}
2450
template <> options::cegqiSingleInvReconstruct__option_t::type& Options::ref(
2451
    options::cegqiSingleInvReconstruct__option_t)
2452
{
2453
    return quantifiers().cegqiSingleInvReconstruct;
2454
}
2455
223
template <> const options::cegqiSingleInvReconstruct__option_t::type& Options::operator[](
2456
    options::cegqiSingleInvReconstruct__option_t) const
2457
{
2458
223
  return quantifiers().cegqiSingleInvReconstruct;
2459
}
2460
template <> bool Options::wasSetByUser(options::cegqiSingleInvReconstruct__option_t) const
2461
{
2462
  return quantifiers().cegqiSingleInvReconstruct__setByUser__;
2463
}
2464
template <> options::cegqiSingleInvReconstructConst__option_t::type& Options::ref(
2465
    options::cegqiSingleInvReconstructConst__option_t)
2466
{
2467
    return quantifiers().cegqiSingleInvReconstructConst;
2468
}
2469
template <> const options::cegqiSingleInvReconstructConst__option_t::type& Options::operator[](
2470
    options::cegqiSingleInvReconstructConst__option_t) const
2471
{
2472
  return quantifiers().cegqiSingleInvReconstructConst;
2473
}
2474
template <> bool Options::wasSetByUser(options::cegqiSingleInvReconstructConst__option_t) const
2475
{
2476
  return quantifiers().cegqiSingleInvReconstructConst__setByUser__;
2477
}
2478
706
template <> options::cegqiSingleInvMode__option_t::type& Options::ref(
2479
    options::cegqiSingleInvMode__option_t)
2480
{
2481
706
    return quantifiers().cegqiSingleInvMode;
2482
}
2483
563
template <> const options::cegqiSingleInvMode__option_t::type& Options::operator[](
2484
    options::cegqiSingleInvMode__option_t) const
2485
{
2486
563
  return quantifiers().cegqiSingleInvMode;
2487
}
2488
838
template <> bool Options::wasSetByUser(options::cegqiSingleInvMode__option_t) const
2489
{
2490
838
  return quantifiers().cegqiSingleInvMode__setByUser__;
2491
}
2492
7
template <> options::sygusStream__option_t::type& Options::ref(
2493
    options::sygusStream__option_t)
2494
{
2495
7
    return quantifiers().sygusStream;
2496
}
2497
2209
template <> const options::sygusStream__option_t::type& Options::operator[](
2498
    options::sygusStream__option_t) const
2499
{
2500
2209
  return quantifiers().sygusStream;
2501
}
2502
template <> bool Options::wasSetByUser(options::sygusStream__option_t) const
2503
{
2504
  return quantifiers().sygusStream__setByUser__;
2505
}
2506
template <> options::sygusTemplEmbedGrammar__option_t::type& Options::ref(
2507
    options::sygusTemplEmbedGrammar__option_t)
2508
{
2509
    return quantifiers().sygusTemplEmbedGrammar;
2510
}
2511
74
template <> const options::sygusTemplEmbedGrammar__option_t::type& Options::operator[](
2512
    options::sygusTemplEmbedGrammar__option_t) const
2513
{
2514
74
  return quantifiers().sygusTemplEmbedGrammar;
2515
}
2516
template <> bool Options::wasSetByUser(options::sygusTemplEmbedGrammar__option_t) const
2517
{
2518
  return quantifiers().sygusTemplEmbedGrammar__setByUser__;
2519
}
2520
template <> options::sygusUnifCondIndNoRepeatSol__option_t::type& Options::ref(
2521
    options::sygusUnifCondIndNoRepeatSol__option_t)
2522
{
2523
    return quantifiers().sygusUnifCondIndNoRepeatSol;
2524
}
2525
template <> const options::sygusUnifCondIndNoRepeatSol__option_t::type& Options::operator[](
2526
    options::sygusUnifCondIndNoRepeatSol__option_t) const
2527
{
2528
  return quantifiers().sygusUnifCondIndNoRepeatSol;
2529
}
2530
template <> bool Options::wasSetByUser(options::sygusUnifCondIndNoRepeatSol__option_t) const
2531
{
2532
  return quantifiers().sygusUnifCondIndNoRepeatSol__setByUser__;
2533
}
2534
template <> options::sygusUnifPi__option_t::type& Options::ref(
2535
    options::sygusUnifPi__option_t)
2536
{
2537
    return quantifiers().sygusUnifPi;
2538
}
2539
3440
template <> const options::sygusUnifPi__option_t::type& Options::operator[](
2540
    options::sygusUnifPi__option_t) const
2541
{
2542
3440
  return quantifiers().sygusUnifPi;
2543
}
2544
25
template <> bool Options::wasSetByUser(options::sygusUnifPi__option_t) const
2545
{
2546
25
  return quantifiers().sygusUnifPi__setByUser__;
2547
}
2548
template <> options::sygusUnifShuffleCond__option_t::type& Options::ref(
2549
    options::sygusUnifShuffleCond__option_t)
2550
{
2551
    return quantifiers().sygusUnifShuffleCond;
2552
}
2553
template <> const options::sygusUnifShuffleCond__option_t::type& Options::operator[](
2554
    options::sygusUnifShuffleCond__option_t) const
2555
{
2556
  return quantifiers().sygusUnifShuffleCond;
2557
}
2558
template <> bool Options::wasSetByUser(options::sygusUnifShuffleCond__option_t) const
2559
{
2560
  return quantifiers().sygusUnifShuffleCond__setByUser__;
2561
}
2562
template <> options::termDbCd__option_t::type& Options::ref(
2563
    options::termDbCd__option_t)
2564
{
2565
    return quantifiers().termDbCd;
2566
}
2567
172013
template <> const options::termDbCd__option_t::type& Options::operator[](
2568
    options::termDbCd__option_t) const
2569
{
2570
172013
  return quantifiers().termDbCd;
2571
}
2572
template <> bool Options::wasSetByUser(options::termDbCd__option_t) const
2573
{
2574
  return quantifiers().termDbCd__setByUser__;
2575
}
2576
template <> options::termDbMode__option_t::type& Options::ref(
2577
    options::termDbMode__option_t)
2578
{
2579
    return quantifiers().termDbMode;
2580
}
2581
4685632
template <> const options::termDbMode__option_t::type& Options::operator[](
2582
    options::termDbMode__option_t) const
2583
{
2584
4685632
  return quantifiers().termDbMode;
2585
}
2586
template <> bool Options::wasSetByUser(options::termDbMode__option_t) const
2587
{
2588
  return quantifiers().termDbMode__setByUser__;
2589
}
2590
template <> options::triggerActiveSelMode__option_t::type& Options::ref(
2591
    options::triggerActiveSelMode__option_t)
2592
{
2593
    return quantifiers().triggerActiveSelMode;
2594
}
2595
28235
template <> const options::triggerActiveSelMode__option_t::type& Options::operator[](
2596
    options::triggerActiveSelMode__option_t) const
2597
{
2598
28235
  return quantifiers().triggerActiveSelMode;
2599
}
2600
template <> bool Options::wasSetByUser(options::triggerActiveSelMode__option_t) const
2601
{
2602
  return quantifiers().triggerActiveSelMode__setByUser__;
2603
}
2604
template <> options::triggerSelMode__option_t::type& Options::ref(
2605
    options::triggerSelMode__option_t)
2606
{
2607
    return quantifiers().triggerSelMode;
2608
}
2609
6156
template <> const options::triggerSelMode__option_t::type& Options::operator[](
2610
    options::triggerSelMode__option_t) const
2611
{
2612
6156
  return quantifiers().triggerSelMode;
2613
}
2614
template <> bool Options::wasSetByUser(options::triggerSelMode__option_t) const
2615
{
2616
  return quantifiers().triggerSelMode__setByUser__;
2617
}
2618
template <> options::userPatternsQuant__option_t::type& Options::ref(
2619
    options::userPatternsQuant__option_t)
2620
{
2621
    return quantifiers().userPatternsQuant;
2622
}
2623
387854
template <> const options::userPatternsQuant__option_t::type& Options::operator[](
2624
    options::userPatternsQuant__option_t) const
2625
{
2626
387854
  return quantifiers().userPatternsQuant;
2627
}
2628
template <> bool Options::wasSetByUser(options::userPatternsQuant__option_t) const
2629
{
2630
  return quantifiers().userPatternsQuant__setByUser__;
2631
}
2632
template <> options::varElimQuant__option_t::type& Options::ref(
2633
    options::varElimQuant__option_t)
2634
{
2635
    return quantifiers().varElimQuant;
2636
}
2637
530164
template <> const options::varElimQuant__option_t::type& Options::operator[](
2638
    options::varElimQuant__option_t) const
2639
{
2640
530164
  return quantifiers().varElimQuant;
2641
}
2642
template <> bool Options::wasSetByUser(options::varElimQuant__option_t) const
2643
{
2644
  return quantifiers().varElimQuant__setByUser__;
2645
}
2646
template <> options::varIneqElimQuant__option_t::type& Options::ref(
2647
    options::varIneqElimQuant__option_t)
2648
{
2649
    return quantifiers().varIneqElimQuant;
2650
}
2651
99117
template <> const options::varIneqElimQuant__option_t::type& Options::operator[](
2652
    options::varIneqElimQuant__option_t) const
2653
{
2654
99117
  return quantifiers().varIneqElimQuant;
2655
}
2656
template <> bool Options::wasSetByUser(options::varIneqElimQuant__option_t) const
2657
{
2658
  return quantifiers().varIneqElimQuant__setByUser__;
2659
}
2660
2661
namespace options {
2662
2663
thread_local struct aggressiveMiniscopeQuant__option_t aggressiveMiniscopeQuant;
2664
thread_local struct cegisSample__option_t cegisSample;
2665
thread_local struct cegqi__option_t cegqi;
2666
thread_local struct cegqiAll__option_t cegqiAll;
2667
thread_local struct cegqiBv__option_t cegqiBv;
2668
thread_local struct cegqiBvConcInv__option_t cegqiBvConcInv;
2669
thread_local struct cegqiBvIneqMode__option_t cegqiBvIneqMode;
2670
thread_local struct cegqiBvInterleaveValue__option_t cegqiBvInterleaveValue;
2671
thread_local struct cegqiBvLinearize__option_t cegqiBvLinearize;
2672
thread_local struct cegqiBvRmExtract__option_t cegqiBvRmExtract;
2673
thread_local struct cegqiBvSolveNl__option_t cegqiBvSolveNl;
2674
thread_local struct cegqiFullEffort__option_t cegqiFullEffort;
2675
thread_local struct cegqiInnermost__option_t cegqiInnermost;
2676
thread_local struct cegqiMidpoint__option_t cegqiMidpoint;
2677
thread_local struct cegqiMinBounds__option_t cegqiMinBounds;
2678
thread_local struct cegqiModel__option_t cegqiModel;
2679
thread_local struct cegqiMultiInst__option_t cegqiMultiInst;
2680
thread_local struct cegqiNestedQE__option_t cegqiNestedQE;
2681
thread_local struct cegqiNopt__option_t cegqiNopt;
2682
thread_local struct cegqiRepeatLit__option_t cegqiRepeatLit;
2683
thread_local struct cegqiRoundUpLowerLia__option_t cegqiRoundUpLowerLia;
2684
thread_local struct cegqiSat__option_t cegqiSat;
2685
thread_local struct cegqiUseInfInt__option_t cegqiUseInfInt;
2686
thread_local struct cegqiUseInfReal__option_t cegqiUseInfReal;
2687
thread_local struct condVarSplitQuantAgg__option_t condVarSplitQuantAgg;
2688
thread_local struct condVarSplitQuant__option_t condVarSplitQuant;
2689
thread_local struct conjectureFilterActiveTerms__option_t conjectureFilterActiveTerms;
2690
thread_local struct conjectureFilterCanonical__option_t conjectureFilterCanonical;
2691
thread_local struct conjectureFilterModel__option_t conjectureFilterModel;
2692
thread_local struct conjectureGen__option_t conjectureGen;
2693
thread_local struct conjectureGenGtEnum__option_t conjectureGenGtEnum;
2694
thread_local struct conjectureGenMaxDepth__option_t conjectureGenMaxDepth;
2695
thread_local struct conjectureGenPerRound__option_t conjectureGenPerRound;
2696
thread_local struct conjectureUeeIntro__option_t conjectureUeeIntro;
2697
thread_local struct conjectureNoFilter__option_t conjectureNoFilter;
2698
thread_local struct debugInst__option_t debugInst;
2699
thread_local struct debugSygus__option_t debugSygus;
2700
thread_local struct dtStcInduction__option_t dtStcInduction;
2701
thread_local struct dtVarExpandQuant__option_t dtVarExpandQuant;
2702
thread_local struct eMatching__option_t eMatching;
2703
thread_local struct elimTautQuant__option_t elimTautQuant;
2704
thread_local struct extRewriteQuant__option_t extRewriteQuant;
2705
thread_local struct finiteModelFind__option_t finiteModelFind;
2706
thread_local struct fmfBound__option_t fmfBound;
2707
thread_local struct fmfBoundInt__option_t fmfBoundInt;
2708
thread_local struct fmfBoundLazy__option_t fmfBoundLazy;
2709
thread_local struct fmfFmcSimple__option_t fmfFmcSimple;
2710
thread_local struct fmfFreshDistConst__option_t fmfFreshDistConst;
2711
thread_local struct fmfFunWellDefined__option_t fmfFunWellDefined;
2712
thread_local struct fmfFunWellDefinedRelevant__option_t fmfFunWellDefinedRelevant;
2713
thread_local struct fmfInstEngine__option_t fmfInstEngine;
2714
thread_local struct fmfTypeCompletionThresh__option_t fmfTypeCompletionThresh;
2715
thread_local struct fullSaturateInterleave__option_t fullSaturateInterleave;
2716
thread_local struct fullSaturateStratify__option_t fullSaturateStratify;
2717
thread_local struct fullSaturateSum__option_t fullSaturateSum;
2718
thread_local struct fullSaturateQuant__option_t fullSaturateQuant;
2719
thread_local struct fullSaturateLimit__option_t fullSaturateLimit;
2720
thread_local struct fullSaturateQuantRd__option_t fullSaturateQuantRd;
2721
thread_local struct globalNegate__option_t globalNegate;
2722
thread_local struct hoElim__option_t hoElim;
2723
thread_local struct hoElimStoreAx__option_t hoElimStoreAx;
2724
thread_local struct hoMatching__option_t hoMatching;
2725
thread_local struct hoMatchingVarArgPriority__option_t hoMatchingVarArgPriority;
2726
thread_local struct hoMergeTermDb__option_t hoMergeTermDb;
2727
thread_local struct incrementTriggers__option_t incrementTriggers;
2728
thread_local struct instLevelInputOnly__option_t instLevelInputOnly;
2729
thread_local struct instMaxLevel__option_t instMaxLevel;
2730
thread_local struct instNoEntail__option_t instNoEntail;
2731
thread_local struct instWhenPhase__option_t instWhenPhase;
2732
thread_local struct instWhenStrictInterleave__option_t instWhenStrictInterleave;
2733
thread_local struct instWhenTcFirst__option_t instWhenTcFirst;
2734
thread_local struct instWhenMode__option_t instWhenMode;
2735
thread_local struct intWfInduction__option_t intWfInduction;
2736
thread_local struct iteDtTesterSplitQuant__option_t iteDtTesterSplitQuant;
2737
thread_local struct iteLiftQuant__option_t iteLiftQuant;
2738
thread_local struct literalMatchMode__option_t literalMatchMode;
2739
thread_local struct macrosQuant__option_t macrosQuant;
2740
thread_local struct macrosQuantMode__option_t macrosQuantMode;
2741
thread_local struct mbqiInterleave__option_t mbqiInterleave;
2742
thread_local struct fmfOneInstPerRound__option_t fmfOneInstPerRound;
2743
thread_local struct mbqiMode__option_t mbqiMode;
2744
thread_local struct miniscopeQuant__option_t miniscopeQuant;
2745
thread_local struct miniscopeQuantFreeVar__option_t miniscopeQuantFreeVar;
2746
thread_local struct multiTriggerCache__option_t multiTriggerCache;
2747
thread_local struct multiTriggerLinear__option_t multiTriggerLinear;
2748
thread_local struct multiTriggerPriority__option_t multiTriggerPriority;
2749
thread_local struct multiTriggerWhenSingle__option_t multiTriggerWhenSingle;
2750
thread_local struct partialTriggers__option_t partialTriggers;
2751
thread_local struct poolInst__option_t poolInst;
2752
thread_local struct preSkolemQuant__option_t preSkolemQuant;
2753
thread_local struct preSkolemQuantAgg__option_t preSkolemQuantAgg;
2754
thread_local struct preSkolemQuantNested__option_t preSkolemQuantNested;
2755
thread_local struct prenexQuantUser__option_t prenexQuantUser;
2756
thread_local struct prenexQuant__option_t prenexQuant;
2757
thread_local struct purifyTriggers__option_t purifyTriggers;
2758
thread_local struct qcfAllConflict__option_t qcfAllConflict;
2759
thread_local struct qcfEagerCheckRd__option_t qcfEagerCheckRd;
2760
thread_local struct qcfEagerTest__option_t qcfEagerTest;
2761
thread_local struct qcfNestedConflict__option_t qcfNestedConflict;
2762
thread_local struct qcfSkipRd__option_t qcfSkipRd;
2763
thread_local struct qcfTConstraint__option_t qcfTConstraint;
2764
thread_local struct qcfVoExp__option_t qcfVoExp;
2765
thread_local struct quantAlphaEquiv__option_t quantAlphaEquiv;
2766
thread_local struct quantConflictFind__option_t quantConflictFind;
2767
thread_local struct qcfMode__option_t qcfMode;
2768
thread_local struct qcfWhenMode__option_t qcfWhenMode;
2769
thread_local struct quantDynamicSplit__option_t quantDynamicSplit;
2770
thread_local struct quantFunWellDefined__option_t quantFunWellDefined;
2771
thread_local struct quantInduction__option_t quantInduction;
2772
thread_local struct quantRepMode__option_t quantRepMode;
2773
thread_local struct quantSplit__option_t quantSplit;
2774
thread_local struct registerQuantBodyTerms__option_t registerQuantBodyTerms;
2775
thread_local struct relationalTriggers__option_t relationalTriggers;
2776
thread_local struct relevantTriggers__option_t relevantTriggers;
2777
thread_local struct strictTriggers__option_t strictTriggers;
2778
thread_local struct sygus__option_t sygus;
2779
thread_local struct sygusActiveGenEnumConsts__option_t sygusActiveGenEnumConsts;
2780
thread_local struct sygusActiveGenMode__option_t sygusActiveGenMode;
2781
thread_local struct sygusAddConstGrammar__option_t sygusAddConstGrammar;
2782
thread_local struct sygusArgRelevant__option_t sygusArgRelevant;
2783
thread_local struct sygusInvAutoUnfold__option_t sygusInvAutoUnfold;
2784
thread_local struct sygusBoolIteReturnConst__option_t sygusBoolIteReturnConst;
2785
thread_local struct sygusCoreConnective__option_t sygusCoreConnective;
2786
thread_local struct sygusConstRepairAbort__option_t sygusConstRepairAbort;
2787
thread_local struct sygusEvalOpt__option_t sygusEvalOpt;
2788
thread_local struct sygusEvalUnfold__option_t sygusEvalUnfold;
2789
thread_local struct sygusEvalUnfoldBool__option_t sygusEvalUnfoldBool;
2790
thread_local struct sygusExprMinerCheckTimeout__option_t sygusExprMinerCheckTimeout;
2791
thread_local struct sygusExtRew__option_t sygusExtRew;
2792
thread_local struct sygusFilterSolRevSubsume__option_t sygusFilterSolRevSubsume;
2793
thread_local struct sygusFilterSolMode__option_t sygusFilterSolMode;
2794
thread_local struct sygusGrammarConsMode__option_t sygusGrammarConsMode;
2795
thread_local struct sygusGrammarNorm__option_t sygusGrammarNorm;
2796
thread_local struct sygusInference__option_t sygusInference;
2797
thread_local struct sygusInst__option_t sygusInst;
2798
thread_local struct sygusInstMode__option_t sygusInstMode;
2799
thread_local struct sygusInstScope__option_t sygusInstScope;
2800
thread_local struct sygusInstTermSel__option_t sygusInstTermSel;
2801
thread_local struct sygusInvTemplWhenSyntax__option_t sygusInvTemplWhenSyntax;
2802
thread_local struct sygusInvTemplMode__option_t sygusInvTemplMode;
2803
thread_local struct sygusMinGrammar__option_t sygusMinGrammar;
2804
thread_local struct sygusUnifPbe__option_t sygusUnifPbe;
2805
thread_local struct sygusPbeMultiFair__option_t sygusPbeMultiFair;
2806
thread_local struct sygusPbeMultiFairDiff__option_t sygusPbeMultiFairDiff;
2807
thread_local struct sygusQePreproc__option_t sygusQePreproc;
2808
thread_local struct sygusQueryGen__option_t sygusQueryGen;
2809
thread_local struct sygusQueryGenCheck__option_t sygusQueryGenCheck;
2810
thread_local struct sygusQueryGenDumpFiles__option_t sygusQueryGenDumpFiles;
2811
thread_local struct sygusQueryGenThresh__option_t sygusQueryGenThresh;
2812
thread_local struct sygusRecFun__option_t sygusRecFun;
2813
thread_local struct sygusRecFunEvalLimit__option_t sygusRecFunEvalLimit;
2814
thread_local struct sygusRepairConst__option_t sygusRepairConst;
2815
thread_local struct sygusRepairConstTimeout__option_t sygusRepairConstTimeout;
2816
thread_local struct sygusRew__option_t sygusRew;
2817
thread_local struct sygusRewSynth__option_t sygusRewSynth;
2818
thread_local struct sygusRewSynthAccel__option_t sygusRewSynthAccel;
2819
thread_local struct sygusRewSynthCheck__option_t sygusRewSynthCheck;
2820
thread_local struct sygusRewSynthFilterCong__option_t sygusRewSynthFilterCong;
2821
thread_local struct sygusRewSynthFilterMatch__option_t sygusRewSynthFilterMatch;
2822
thread_local struct sygusRewSynthFilterNonLinear__option_t sygusRewSynthFilterNonLinear;
2823
thread_local struct sygusRewSynthFilterOrder__option_t sygusRewSynthFilterOrder;
2824
thread_local struct sygusRewSynthInput__option_t sygusRewSynthInput;
2825
thread_local struct sygusRewSynthInputNVars__option_t sygusRewSynthInputNVars;
2826
thread_local struct sygusRewSynthInputUseBool__option_t sygusRewSynthInputUseBool;
2827
thread_local struct sygusRewSynthRec__option_t sygusRewSynthRec;
2828
thread_local struct sygusRewVerify__option_t sygusRewVerify;
2829
thread_local struct sygusRewVerifyAbort__option_t sygusRewVerifyAbort;
2830
thread_local struct sygusSampleFpUniform__option_t sygusSampleFpUniform;
2831
thread_local struct sygusSampleGrammar__option_t sygusSampleGrammar;
2832
thread_local struct sygusSamples__option_t sygusSamples;
2833
thread_local struct cegqiSingleInvAbort__option_t cegqiSingleInvAbort;
2834
thread_local struct cegqiSingleInvPartial__option_t cegqiSingleInvPartial;
2835
thread_local struct cegqiSingleInvReconstructLimit__option_t cegqiSingleInvReconstructLimit;
2836
thread_local struct cegqiSingleInvReconstruct__option_t cegqiSingleInvReconstruct;
2837
thread_local struct cegqiSingleInvReconstructConst__option_t cegqiSingleInvReconstructConst;
2838
thread_local struct cegqiSingleInvMode__option_t cegqiSingleInvMode;
2839
thread_local struct sygusStream__option_t sygusStream;
2840
thread_local struct sygusTemplEmbedGrammar__option_t sygusTemplEmbedGrammar;
2841
thread_local struct sygusUnifCondIndNoRepeatSol__option_t sygusUnifCondIndNoRepeatSol;
2842
thread_local struct sygusUnifPi__option_t sygusUnifPi;
2843
thread_local struct sygusUnifShuffleCond__option_t sygusUnifShuffleCond;
2844
thread_local struct termDbCd__option_t termDbCd;
2845
thread_local struct termDbMode__option_t termDbMode;
2846
thread_local struct triggerActiveSelMode__option_t triggerActiveSelMode;
2847
thread_local struct triggerSelMode__option_t triggerSelMode;
2848
thread_local struct userPatternsQuant__option_t userPatternsQuant;
2849
thread_local struct varElimQuant__option_t varElimQuant;
2850
thread_local struct varIneqElimQuant__option_t varIneqElimQuant;
2851
2852
2853
std::ostream& operator<<(std::ostream& os, CegisSampleMode mode)
2854
{
2855
  switch(mode) {
2856
    case CegisSampleMode::NONE:
2857
      return os << "CegisSampleMode::NONE";
2858
    case CegisSampleMode::TRUST:
2859
      return os << "CegisSampleMode::TRUST";
2860
    case CegisSampleMode::USE:
2861
      return os << "CegisSampleMode::USE";
2862
    default:
2863
      Unreachable();
2864
  }
2865
  return os;
2866
}
2867
2868
2
CegisSampleMode stringToCegisSampleMode(const std::string& optarg)
2869
{
2870
2
  if (optarg == "none")
2871
  {
2872
    return CegisSampleMode::NONE;
2873
  }
2874
2
  else if (optarg == "trust")
2875
  {
2876
1
    return CegisSampleMode::TRUST;
2877
  }
2878
1
  else if (optarg == "use")
2879
  {
2880
1
    return CegisSampleMode::USE;
2881
  }
2882
  else if (optarg == "help")
2883
  {
2884
    std::cerr << "Modes for sampling with counterexample-guided inductive synthesis (CEGIS).\n"
2885
         "Available modes for --cegis-sample are:\n"
2886
         "+ none (default)\n"
2887
         "  Do not use sampling with CEGIS.\n"
2888
         "+ trust\n"
2889
         "  Trust that when a solution for a conjecture is always true under sampling,\n"
2890
         "  then it is indeed a solution. Note this option may print out spurious\n"
2891
         "  solutions for synthesis conjectures.\n"
2892
         "+ use\n"
2893
         "  Use sampling to accelerate CEGIS. This will rule out solutions for a\n"
2894
         "  conjecture when they are not satisfied by a sample point.\n";
2895
    std::exit(1);
2896
  }
2897
  throw OptionException(std::string("unknown option for --cegis-sample: `") +
2898
                        optarg + "'.  Try --cegis-sample=help.");
2899
}
2900
2901
std::ostream& operator<<(std::ostream& os, CegqiBvIneqMode mode)
2902
{
2903
  switch(mode) {
2904
    case CegqiBvIneqMode::EQ_SLACK:
2905
      return os << "CegqiBvIneqMode::EQ_SLACK";
2906
    case CegqiBvIneqMode::EQ_BOUNDARY:
2907
      return os << "CegqiBvIneqMode::EQ_BOUNDARY";
2908
    case CegqiBvIneqMode::KEEP:
2909
      return os << "CegqiBvIneqMode::KEEP";
2910
    default:
2911
      Unreachable();
2912
  }
2913
  return os;
2914
}
2915
2916
82
CegqiBvIneqMode stringToCegqiBvIneqMode(const std::string& optarg)
2917
{
2918
82
  if (optarg == "eq-slack")
2919
  {
2920
    return CegqiBvIneqMode::EQ_SLACK;
2921
  }
2922
82
  else if (optarg == "eq-boundary")
2923
  {
2924
3
    return CegqiBvIneqMode::EQ_BOUNDARY;
2925
  }
2926
79
  else if (optarg == "keep")
2927
  {
2928
79
    return CegqiBvIneqMode::KEEP;
2929
  }
2930
  else if (optarg == "help")
2931
  {
2932
    std::cerr << "Modes for handling bit-vector inequalities in counterexample-guided\n"
2933
         "instantiation.\n"
2934
         "Available modes for --cegqi-bv-ineq are:\n"
2935
         "+ eq-slack\n"
2936
         "  Solve for the inequality using the slack value in the model, e.g., t > s\n"
2937
         "  becomes t = s + ( t-s )^M.\n"
2938
         "+ eq-boundary (default)\n"
2939
         "  Solve for the boundary point of the inequality, e.g., t > s becomes t = s+1.\n"
2940
         "+ keep\n"
2941
         "  Solve for the inequality directly using side conditions for invertibility.\n";
2942
    std::exit(1);
2943
  }
2944
  throw OptionException(std::string("unknown option for --cegqi-bv-ineq: `") +
2945
                        optarg + "'.  Try --cegqi-bv-ineq=help.");
2946
}
2947
2948
std::ostream& operator<<(std::ostream& os, InstWhenMode mode)
2949
{
2950
  switch(mode) {
2951
    case InstWhenMode::FULL_DELAY:
2952
      return os << "InstWhenMode::FULL_DELAY";
2953
    case InstWhenMode::FULL:
2954
      return os << "InstWhenMode::FULL";
2955
    case InstWhenMode::PRE_FULL:
2956
      return os << "InstWhenMode::PRE_FULL";
2957
    case InstWhenMode::FULL_DELAY_LAST_CALL:
2958
      return os << "InstWhenMode::FULL_DELAY_LAST_CALL";
2959
    case InstWhenMode::LAST_CALL:
2960
      return os << "InstWhenMode::LAST_CALL";
2961
    case InstWhenMode::FULL_LAST_CALL:
2962
      return os << "InstWhenMode::FULL_LAST_CALL";
2963
    default:
2964
      Unreachable();
2965
  }
2966
  return os;
2967
}
2968
2969
3
InstWhenMode stringToInstWhenMode(const std::string& optarg)
2970
{
2971
3
  if (optarg == "full-delay")
2972
  {
2973
    return InstWhenMode::FULL_DELAY;
2974
  }
2975
3
  else if (optarg == "full")
2976
  {
2977
3
    return InstWhenMode::FULL;
2978
  }
2979
  else if (optarg == "pre-full")
2980
  {
2981
    return InstWhenMode::PRE_FULL;
2982
  }
2983
  else if (optarg == "full-delay-last-call")
2984
  {
2985
    return InstWhenMode::FULL_DELAY_LAST_CALL;
2986
  }
2987
  else if (optarg == "last-call")
2988
  {
2989
    return InstWhenMode::LAST_CALL;
2990
  }
2991
  else if (optarg == "full-last-call")
2992
  {
2993
    return InstWhenMode::FULL_LAST_CALL;
2994
  }
2995
  else if (optarg == "help")
2996
  {
2997
    std::cerr << "Instantiation modes.\n"
2998
         "Available modes for --inst-when are:\n"
2999
         "+ full-delay\n"
3000
         "  Run instantiation round at full effort, before theory combination, after all\n"
3001
         "  other theories have finished.\n"
3002
         "+ full\n"
3003
         "  Run instantiation round at full effort, before theory combination.\n"
3004
         "+ pre-full\n"
3005
         "  Run instantiation round before full effort (possibly at standard effort).\n"
3006
         "+ full-delay-last-call\n"
3007
         "  Alternate running instantiation rounds at full effort after all other theories\n"
3008
         "  have finished, and last call.\n"
3009
         "+ last-call\n"
3010
         "  Run instantiation at last call effort, after theory combination and and\n"
3011
         "  theories report sat.\n"
3012
         "+ full-last-call (default)\n"
3013
         "  Alternate running instantiation rounds at full effort and last call.  In other\n"
3014
         "  words, interleave instantiation and theory combination.\n";
3015
    std::exit(1);
3016
  }
3017
  throw OptionException(std::string("unknown option for --inst-when: `") +
3018
                        optarg + "'.  Try --inst-when=help.");
3019
}
3020
3021
std::ostream& operator<<(std::ostream& os, IteLiftQuantMode mode)
3022
{
3023
  switch(mode) {
3024
    case IteLiftQuantMode::NONE:
3025
      return os << "IteLiftQuantMode::NONE";
3026
    case IteLiftQuantMode::ALL:
3027
      return os << "IteLiftQuantMode::ALL";
3028
    case IteLiftQuantMode::SIMPLE:
3029
      return os << "IteLiftQuantMode::SIMPLE";
3030
    default:
3031
      Unreachable();
3032
  }
3033
  return os;
3034
}
3035
3036
IteLiftQuantMode stringToIteLiftQuantMode(const std::string& optarg)
3037
{
3038
  if (optarg == "none")
3039
  {
3040
    return IteLiftQuantMode::NONE;
3041
  }
3042
  else if (optarg == "all")
3043
  {
3044
    return IteLiftQuantMode::ALL;
3045
  }
3046
  else if (optarg == "simple")
3047
  {
3048
    return IteLiftQuantMode::SIMPLE;
3049
  }
3050
  else if (optarg == "help")
3051
  {
3052
    std::cerr << "ITE lifting modes for quantified formulas.\n"
3053
         "Available modes for --ite-lift-quant are:\n"
3054
         "+ none\n"
3055
         "  Do not lift if-then-else in quantified formulas.\n"
3056
         "+ all\n"
3057
         "  Lift if-then-else in quantified formulas.\n"
3058
         "+ simple (default)\n"
3059
         "  Lift if-then-else in quantified formulas if results in smaller term size.\n";
3060
    std::exit(1);
3061
  }
3062
  throw OptionException(std::string("unknown option for --ite-lift-quant: `") +
3063
                        optarg + "'.  Try --ite-lift-quant=help.");
3064
}
3065
3066
std::ostream& operator<<(std::ostream& os, LiteralMatchMode mode)
3067
{
3068
  switch(mode) {
3069
    case LiteralMatchMode::NONE:
3070
      return os << "LiteralMatchMode::NONE";
3071
    case LiteralMatchMode::AGG_PREDICATE:
3072
      return os << "LiteralMatchMode::AGG_PREDICATE";
3073
    case LiteralMatchMode::AGG:
3074
      return os << "LiteralMatchMode::AGG";
3075
    case LiteralMatchMode::USE:
3076
      return os << "LiteralMatchMode::USE";
3077
    default:
3078
      Unreachable();
3079
  }
3080
  return os;
3081
}
3082
3083
LiteralMatchMode stringToLiteralMatchMode(const std::string& optarg)
3084
{
3085
  if (optarg == "none")
3086
  {
3087
    return LiteralMatchMode::NONE;
3088
  }
3089
  else if (optarg == "agg-predicate")
3090
  {
3091
    return LiteralMatchMode::AGG_PREDICATE;
3092
  }
3093
  else if (optarg == "agg")
3094
  {
3095
    return LiteralMatchMode::AGG;
3096
  }
3097
  else if (optarg == "use")
3098
  {
3099
    return LiteralMatchMode::USE;
3100
  }
3101
  else if (optarg == "help")
3102
  {
3103
    std::cerr << "Literal match modes.\n"
3104
         "Available modes for --literal-matching are:\n"
3105
         "+ none\n"
3106
         "  Do not use literal matching.\n"
3107
         "+ agg-predicate\n"
3108
         "  Consider phase requirements aggressively for predicates. In the above example,\n"
3109
         "  only match P( x ) with terms that are in the equivalence class of false.\n"
3110
         "+ agg\n"
3111
         "  Consider the phase requirements aggressively for all triggers.\n"
3112
         "+ use (default)\n"
3113
         "  Consider phase requirements of triggers conservatively. For example, the\n"
3114
         "  trigger P( x ) in forall( x ). ( P( x ) V ~Q( x ) ) will not be matched with\n"
3115
         "  terms in the equivalence class of true, and likewise Q( x ) will not be\n"
3116
         "  matched terms in the equivalence class of false. Extends to equality.\n";
3117
    std::exit(1);
3118
  }
3119
  throw OptionException(std::string("unknown option for --literal-matching: `") +
3120
                        optarg + "'.  Try --literal-matching=help.");
3121
}
3122
3123
std::ostream& operator<<(std::ostream& os, MacrosQuantMode mode)
3124
{
3125
  switch(mode) {
3126
    case MacrosQuantMode::ALL:
3127
      return os << "MacrosQuantMode::ALL";
3128
    case MacrosQuantMode::GROUND_UF:
3129
      return os << "MacrosQuantMode::GROUND_UF";
3130
    case MacrosQuantMode::GROUND:
3131
      return os << "MacrosQuantMode::GROUND";
3132
    default:
3133
      Unreachable();
3134
  }
3135
  return os;
3136
}
3137
3138
2
MacrosQuantMode stringToMacrosQuantMode(const std::string& optarg)
3139
{
3140
2
  if (optarg == "all")
3141
  {
3142
    return MacrosQuantMode::ALL;
3143
  }
3144
2
  else if (optarg == "ground-uf")
3145
  {
3146
    return MacrosQuantMode::GROUND_UF;
3147
  }
3148
2
  else if (optarg == "ground")
3149
  {
3150
2
    return MacrosQuantMode::GROUND;
3151
  }
3152
  else if (optarg == "help")
3153
  {
3154
    std::cerr << "Modes for quantifiers macro expansion.\n"
3155
         "Available modes for --macros-quant-mode are:\n"
3156
         "+ all\n"
3157
         "  Infer definitions for functions, including those containing quantified\n"
3158
         "  formulas.\n"
3159
         "+ ground-uf (default)\n"
3160
         "  Only infer ground definitions for functions that result in triggers for all\n"
3161
         "  free variables.\n"
3162
         "+ ground\n"
3163
         "  Only infer ground definitions for functions.\n";
3164
    std::exit(1);
3165
  }
3166
  throw OptionException(std::string("unknown option for --macros-quant-mode: `") +
3167
                        optarg + "'.  Try --macros-quant-mode=help.");
3168
}
3169
3170
std::ostream& operator<<(std::ostream& os, MbqiMode mode)
3171
{
3172
  switch(mode) {
3173
    case MbqiMode::NONE:
3174
      return os << "MbqiMode::NONE";
3175
    case MbqiMode::TRUST:
3176
      return os << "MbqiMode::TRUST";
3177
    case MbqiMode::FMC:
3178
      return os << "MbqiMode::FMC";
3179
    default:
3180
      Unreachable();
3181
  }
3182
  return os;
3183
}
3184
3185
MbqiMode stringToMbqiMode(const std::string& optarg)
3186
{
3187
  if (optarg == "none")
3188
  {
3189
    return MbqiMode::NONE;
3190
  }
3191
  else if (optarg == "trust")
3192
  {
3193
    return MbqiMode::TRUST;
3194
  }
3195
  else if (optarg == "fmc")
3196
  {
3197
    return MbqiMode::FMC;
3198
  }
3199
  else if (optarg == "help")
3200
  {
3201
    std::cerr << "Model-based quantifier instantiation modes.\n"
3202
         "Available modes for --mbqi are:\n"
3203
         "+ none\n"
3204
         "  Disable model-based quantifier instantiation.\n"
3205
         "+ trust\n"
3206
         "  Do not instantiate quantified formulas (incomplete technique).\n"
3207
         "+ fmc (default)\n"
3208
         "  Use algorithm from Section 5.4.2 of thesis Finite Model Finding in\n"
3209
         "  Satisfiability Modulo Theories.\n";
3210
    std::exit(1);
3211
  }
3212
  throw OptionException(std::string("unknown option for --mbqi: `") +
3213
                        optarg + "'.  Try --mbqi=help.");
3214
}
3215
3216
std::ostream& operator<<(std::ostream& os, PrenexQuantMode mode)
3217
{
3218
  switch(mode) {
3219
    case PrenexQuantMode::NONE:
3220
      return os << "PrenexQuantMode::NONE";
3221
    case PrenexQuantMode::NORMAL:
3222
      return os << "PrenexQuantMode::NORMAL";
3223
    case PrenexQuantMode::SIMPLE:
3224
      return os << "PrenexQuantMode::SIMPLE";
3225
    default:
3226
      Unreachable();
3227
  }
3228
  return os;
3229
}
3230
3231
PrenexQuantMode stringToPrenexQuantMode(const std::string& optarg)
3232
{
3233
  if (optarg == "none")
3234
  {
3235
    return PrenexQuantMode::NONE;
3236
  }
3237
  else if (optarg == "norm")
3238
  {
3239
    return PrenexQuantMode::NORMAL;
3240
  }
3241
  else if (optarg == "simple")
3242
  {
3243
    return PrenexQuantMode::SIMPLE;
3244
  }
3245
  else if (optarg == "help")
3246
  {
3247
    std::cerr << "Prenex quantifiers modes.\n"
3248
         "Available modes for --prenex-quant are:\n"
3249
         "+ none\n"
3250
         "  Do no prenex nested quantifiers.\n"
3251
         "+ norm\n"
3252
         "  Prenex to prenex normal form.\n"
3253
         "+ simple (default)\n"
3254
         "  Do simple prenexing of same sign quantifiers.\n";
3255
    std::exit(1);
3256
  }
3257
  throw OptionException(std::string("unknown option for --prenex-quant: `") +
3258
                        optarg + "'.  Try --prenex-quant=help.");
3259
}
3260
3261
std::ostream& operator<<(std::ostream& os, QcfMode mode)
3262
{
3263
  switch(mode) {
3264
    case QcfMode::CONFLICT_ONLY:
3265
      return os << "QcfMode::CONFLICT_ONLY";
3266
    case QcfMode::PARTIAL:
3267
      return os << "QcfMode::PARTIAL";
3268
    case QcfMode::PROP_EQ:
3269
      return os << "QcfMode::PROP_EQ";
3270
    default:
3271
      Unreachable();
3272
  }
3273
  return os;
3274
}
3275
3276
QcfMode stringToQcfMode(const std::string& optarg)
3277
{
3278
  if (optarg == "conflict")
3279
  {
3280
    return QcfMode::CONFLICT_ONLY;
3281
  }
3282
  else if (optarg == "partial")
3283
  {
3284
    return QcfMode::PARTIAL;
3285
  }
3286
  else if (optarg == "prop-eq")
3287
  {
3288
    return QcfMode::PROP_EQ;
3289
  }
3290
  else if (optarg == "help")
3291
  {
3292
    std::cerr << "Quantifier conflict find modes.\n"
3293
         "Available modes for --quant-cf-mode are:\n"
3294
         "+ conflict\n"
3295
         "  Apply QCF algorithm to find conflicts only.\n"
3296
         "+ partial\n"
3297
         "  Use QCF for conflicts, propagations and heuristic instantiations.\n"
3298
         "+ prop-eq (default)\n"
3299
         "  Apply QCF algorithm to propagate equalities as well as conflicts.\n";
3300
    std::exit(1);
3301
  }
3302
  throw OptionException(std::string("unknown option for --quant-cf-mode: `") +
3303
                        optarg + "'.  Try --quant-cf-mode=help.");
3304
}
3305
3306
std::ostream& operator<<(std::ostream& os, QcfWhenMode mode)
3307
{
3308
  switch(mode) {
3309
    case QcfWhenMode::STD_H:
3310
      return os << "QcfWhenMode::STD_H";
3311
    case QcfWhenMode::LAST_CALL:
3312
      return os << "QcfWhenMode::LAST_CALL";
3313
    case QcfWhenMode::STD:
3314
      return os << "QcfWhenMode::STD";
3315
    case QcfWhenMode::DEFAULT:
3316
      return os << "QcfWhenMode::DEFAULT";
3317
    default:
3318
      Unreachable();
3319
  }
3320
  return os;
3321
}
3322
3323
QcfWhenMode stringToQcfWhenMode(const std::string& optarg)
3324
{
3325
  if (optarg == "std-h")
3326
  {
3327
    return QcfWhenMode::STD_H;
3328
  }
3329
  else if (optarg == "last-call")
3330
  {
3331
    return QcfWhenMode::LAST_CALL;
3332
  }
3333
  else if (optarg == "std")
3334
  {
3335
    return QcfWhenMode::STD;
3336
  }
3337
  else if (optarg == "default")
3338
  {
3339
    return QcfWhenMode::DEFAULT;
3340
  }
3341
  else if (optarg == "help")
3342
  {
3343
    std::cerr << "Quantifier conflict find modes.\n"
3344
         "Available modes for --quant-cf-when are:\n"
3345
         "+ std-h\n"
3346
         "  Apply conflict finding at standard effort when heuristic says to.\n"
3347
         "+ last-call\n"
3348
         "  Apply conflict finding at last call, after theory combination and and all\n"
3349
         "  theories report sat.\n"
3350
         "+ std\n"
3351
         "  Apply conflict finding at standard effort.\n"
3352
         "+ default\n"
3353
         "  Default, apply conflict finding at full effort.\n";
3354
    std::exit(1);
3355
  }
3356
  throw OptionException(std::string("unknown option for --quant-cf-when: `") +
3357
                        optarg + "'.  Try --quant-cf-when=help.");
3358
}
3359
3360
std::ostream& operator<<(std::ostream& os, QuantDSplitMode mode)
3361
{
3362
  switch(mode) {
3363
    case QuantDSplitMode::NONE:
3364
      return os << "QuantDSplitMode::NONE";
3365
    case QuantDSplitMode::AGG:
3366
      return os << "QuantDSplitMode::AGG";
3367
    case QuantDSplitMode::DEFAULT:
3368
      return os << "QuantDSplitMode::DEFAULT";
3369
    default:
3370
      Unreachable();
3371
  }
3372
  return os;
3373
}
3374
3375
QuantDSplitMode stringToQuantDSplitMode(const std::string& optarg)
3376
{
3377
  if (optarg == "none")
3378
  {
3379
    return QuantDSplitMode::NONE;
3380
  }
3381
  else if (optarg == "agg")
3382
  {
3383
    return QuantDSplitMode::AGG;
3384
  }
3385
  else if (optarg == "default")
3386
  {
3387
    return QuantDSplitMode::DEFAULT;
3388
  }
3389
  else if (optarg == "help")
3390
  {
3391
    std::cerr << "Modes for quantifiers splitting.\n"
3392
         "Available modes for --quant-dsplit-mode are:\n"
3393
         "+ none\n"
3394
         "  Never split quantified formulas.\n"
3395
         "+ agg\n"
3396
         "  Aggressively split quantified formulas.\n"
3397
         "+ default\n"
3398
         "  Split quantified formulas over some finite datatypes when finite model finding\n"
3399
         "  is enabled.\n";
3400
    std::exit(1);
3401
  }
3402
  throw OptionException(std::string("unknown option for --quant-dsplit-mode: `") +
3403
                        optarg + "'.  Try --quant-dsplit-mode=help.");
3404
}
3405
3406
std::ostream& operator<<(std::ostream& os, QuantRepMode mode)
3407
{
3408
  switch(mode) {
3409
    case QuantRepMode::EE:
3410
      return os << "QuantRepMode::EE";
3411
    case QuantRepMode::DEPTH:
3412
      return os << "QuantRepMode::DEPTH";
3413
    case QuantRepMode::FIRST:
3414
      return os << "QuantRepMode::FIRST";
3415
    default:
3416
      Unreachable();
3417
  }
3418
  return os;
3419
}
3420
3421
QuantRepMode stringToQuantRepMode(const std::string& optarg)
3422
{
3423
  if (optarg == "ee")
3424
  {
3425
    return QuantRepMode::EE;
3426
  }
3427
  else if (optarg == "depth")
3428
  {
3429
    return QuantRepMode::DEPTH;
3430
  }
3431
  else if (optarg == "first")
3432
  {
3433
    return QuantRepMode::FIRST;
3434
  }
3435
  else if (optarg == "help")
3436
  {
3437
    std::cerr << "Modes for quantifiers representative selection.\n"
3438
         "Available modes for --quant-rep-mode are:\n"
3439
         "+ ee\n"
3440
         "  Let equality engine choose representatives.\n"
3441
         "+ depth\n"
3442
         "  Choose terms that are of minimal depth.\n"
3443
         "+ first (default)\n"
3444
         "  Choose terms that appear first.\n";
3445
    std::exit(1);
3446
  }
3447
  throw OptionException(std::string("unknown option for --quant-rep-mode: `") +
3448
                        optarg + "'.  Try --quant-rep-mode=help.");
3449
}
3450
3451
std::ostream& operator<<(std::ostream& os, SygusActiveGenMode mode)
3452
{
3453
  switch(mode) {
3454
    case SygusActiveGenMode::NONE:
3455
      return os << "SygusActiveGenMode::NONE";
3456
    case SygusActiveGenMode::ENUM:
3457
      return os << "SygusActiveGenMode::ENUM";
3458
    case SygusActiveGenMode::VAR_AGNOSTIC:
3459
      return os << "SygusActiveGenMode::VAR_AGNOSTIC";
3460
    case SygusActiveGenMode::AUTO:
3461
      return os << "SygusActiveGenMode::AUTO";
3462
    case SygusActiveGenMode::ENUM_BASIC:
3463
      return os << "SygusActiveGenMode::ENUM_BASIC";
3464
    default:
3465
      Unreachable();
3466
  }
3467
  return os;
3468
}
3469
3470
14
SygusActiveGenMode stringToSygusActiveGenMode(const std::string& optarg)
3471
{
3472
14
  if (optarg == "none")
3473
  {
3474
3
    return SygusActiveGenMode::NONE;
3475
  }
3476
11
  else if (optarg == "enum")
3477
  {
3478
10
    return SygusActiveGenMode::ENUM;
3479
  }
3480
1
  else if (optarg == "var-agnostic")
3481
  {
3482
1
    return SygusActiveGenMode::VAR_AGNOSTIC;
3483
  }
3484
  else if (optarg == "auto")
3485
  {
3486
    return SygusActiveGenMode::AUTO;
3487
  }
3488
  else if (optarg == "basic")
3489
  {
3490
    return SygusActiveGenMode::ENUM_BASIC;
3491
  }
3492
  else if (optarg == "help")
3493
  {
3494
    std::cerr << "Modes for actively-generated sygus enumerators.\n"
3495
         "Available modes for --sygus-active-gen are:\n"
3496
         "+ none\n"
3497
         "  Do not use actively-generated sygus enumerators.\n"
3498
         "+ enum\n"
3499
         "  Use optimized enumerator for actively-generated sygus enumerators.\n"
3500
         "+ var-agnostic\n"
3501
         "  Use sygus solver to enumerate terms that are agnostic to variables.\n"
3502
         "+ auto (default)\n"
3503
         "  Internally decide the best policy for each enumerator.\n"
3504
         "+ basic\n"
3505
         "  Use basic type enumerator for actively-generated sygus enumerators.\n";
3506
    std::exit(1);
3507
  }
3508
  throw OptionException(std::string("unknown option for --sygus-active-gen: `") +
3509
                        optarg + "'.  Try --sygus-active-gen=help.");
3510
}
3511
3512
std::ostream& operator<<(std::ostream& os, SygusFilterSolMode mode)
3513
{
3514
  switch(mode) {
3515
    case SygusFilterSolMode::NONE:
3516
      return os << "SygusFilterSolMode::NONE";
3517
    case SygusFilterSolMode::STRONG:
3518
      return os << "SygusFilterSolMode::STRONG";
3519
    case SygusFilterSolMode::WEAK:
3520
      return os << "SygusFilterSolMode::WEAK";
3521
    default:
3522
      Unreachable();
3523
  }
3524
  return os;
3525
}
3526
3527
SygusFilterSolMode stringToSygusFilterSolMode(const std::string& optarg)
3528
{
3529
  if (optarg == "none")
3530
  {
3531
    return SygusFilterSolMode::NONE;
3532
  }
3533
  else if (optarg == "strong")
3534
  {
3535
    return SygusFilterSolMode::STRONG;
3536
  }
3537
  else if (optarg == "weak")
3538
  {
3539
    return SygusFilterSolMode::WEAK;
3540
  }
3541
  else if (optarg == "help")
3542
  {
3543
    std::cerr << "Modes for filtering sygus solutions.\n"
3544
         "Available modes for --sygus-filter-sol are:\n"
3545
         "+ none (default)\n"
3546
         "  Do not filter sygus solutions.\n"
3547
         "+ strong\n"
3548
         "  Filter solutions that are logically stronger than others.\n"
3549
         "+ weak\n"
3550
         "  Filter solutions that are logically weaker than others.\n";
3551
    std::exit(1);
3552
  }
3553
  throw OptionException(std::string("unknown option for --sygus-filter-sol: `") +
3554
                        optarg + "'.  Try --sygus-filter-sol=help.");
3555
}
3556
3557
std::ostream& operator<<(std::ostream& os, SygusGrammarConsMode mode)
3558
{
3559
  switch(mode) {
3560
    case SygusGrammarConsMode::ANY_TERM_CONCISE:
3561
      return os << "SygusGrammarConsMode::ANY_TERM_CONCISE";
3562
    case SygusGrammarConsMode::ANY_CONST:
3563
      return os << "SygusGrammarConsMode::ANY_CONST";
3564
    case SygusGrammarConsMode::ANY_TERM:
3565
      return os << "SygusGrammarConsMode::ANY_TERM";
3566
    case SygusGrammarConsMode::SIMPLE:
3567
      return os << "SygusGrammarConsMode::SIMPLE";
3568
    default:
3569
      Unreachable();
3570
  }
3571
  return os;
3572
}
3573
3574
6
SygusGrammarConsMode stringToSygusGrammarConsMode(const std::string& optarg)
3575
{
3576
6
  if (optarg == "any-term-concise")
3577
  {
3578
2
    return SygusGrammarConsMode::ANY_TERM_CONCISE;
3579
  }
3580
4
  else if (optarg == "any-const")
3581
  {
3582
2
    return SygusGrammarConsMode::ANY_CONST;
3583
  }
3584
2
  else if (optarg == "any-term")
3585
  {
3586
2
    return SygusGrammarConsMode::ANY_TERM;
3587
  }
3588
  else if (optarg == "simple")
3589
  {
3590
    return SygusGrammarConsMode::SIMPLE;
3591
  }
3592
  else if (optarg == "help")
3593
  {
3594
    std::cerr << "Modes for default SyGuS grammars.\n"
3595
         "Available modes for --sygus-grammar-cons are:\n"
3596
         "+ any-term-concise\n"
3597
         "  When applicable, use constructors corresponding to any symbolic term, favoring\n"
3598
         "  conciseness over generality. This option is equivalent to any-term but enables\n"
3599
         "  a polynomial grammar for arithmetic when not in a combined theory.\n"
3600
         "+ any-const\n"
3601
         "  Use symoblic constant constructors.\n"
3602
         "+ any-term\n"
3603
         "  When applicable, use constructors corresponding to any symbolic term. This\n"
3604
         "  option enables a sum-of-monomials grammar for arithmetic. For all other types,\n"
3605
         "  it enables symbolic constant constructors.\n"
3606
         "+ simple (default)\n"
3607
         "  Use simple grammar construction (no symbolic terms or constants).\n";
3608
    std::exit(1);
3609
  }
3610
  throw OptionException(std::string("unknown option for --sygus-grammar-cons: `") +
3611
                        optarg + "'.  Try --sygus-grammar-cons=help.");
3612
}
3613
3614
std::ostream& operator<<(std::ostream& os, SygusInstMode mode)
3615
{
3616
  switch(mode) {
3617
    case SygusInstMode::PRIORITY_EVAL:
3618
      return os << "SygusInstMode::PRIORITY_EVAL";
3619
    case SygusInstMode::PRIORITY_INST:
3620
      return os << "SygusInstMode::PRIORITY_INST";
3621
    case SygusInstMode::INTERLEAVE:
3622
      return os << "SygusInstMode::INTERLEAVE";
3623
    default:
3624
      Unreachable();
3625
  }
3626
  return os;
3627
}
3628
3629
SygusInstMode stringToSygusInstMode(const std::string& optarg)
3630
{
3631
  if (optarg == "priority-eval")
3632
  {
3633
    return SygusInstMode::PRIORITY_EVAL;
3634
  }
3635
  else if (optarg == "priority-inst")
3636
  {
3637
    return SygusInstMode::PRIORITY_INST;
3638
  }
3639
  else if (optarg == "interleave")
3640
  {
3641
    return SygusInstMode::INTERLEAVE;
3642
  }
3643
  else if (optarg == "help")
3644
  {
3645
    std::cerr << "SyGuS instantiation lemma modes.\n"
3646
         "Available modes for --sygus-inst-mode are:\n"
3647
         "+ priority-eval\n"
3648
         "  add evaluation unfolding lemma first, add instantiation lemma if unfolding\n"
3649
         "  lemmas already added.\n"
3650
         "+ priority-inst (default)\n"
3651
         "  add instantiation lemmas first, add evaluation unfolding if instantiation\n"
3652
         "  fails.\n"
3653
         "+ interleave\n"
3654
         "  add instantiation and evaluation unfolding lemmas in the same step.\n";
3655
    std::exit(1);
3656
  }
3657
  throw OptionException(std::string("unknown option for --sygus-inst-mode: `") +
3658
                        optarg + "'.  Try --sygus-inst-mode=help.");
3659
}
3660
3661
std::ostream& operator<<(std::ostream& os, SygusInstScope mode)
3662
{
3663
  switch(mode) {
3664
    case SygusInstScope::OUT:
3665
      return os << "SygusInstScope::OUT";
3666
    case SygusInstScope::BOTH:
3667
      return os << "SygusInstScope::BOTH";
3668
    case SygusInstScope::IN:
3669
      return os << "SygusInstScope::IN";
3670
    default:
3671
      Unreachable();
3672
  }
3673
  return os;
3674
}
3675
3676
SygusInstScope stringToSygusInstScope(const std::string& optarg)
3677
{
3678
  if (optarg == "out")
3679
  {
3680
    return SygusInstScope::OUT;
3681
  }
3682
  else if (optarg == "both")
3683
  {
3684
    return SygusInstScope::BOTH;
3685
  }
3686
  else if (optarg == "in")
3687
  {
3688
    return SygusInstScope::IN;
3689
  }
3690
  else if (optarg == "help")
3691
  {
3692
    std::cerr << "scope for collecting ground terms for the grammar.\n"
3693
         "Available modes for --sygus-inst-scope are:\n"
3694
         "+ out\n"
3695
         "  use ground terms outside of quantified formulas only.\n"
3696
         "+ both\n"
3697
         "  combines inside and outside.\n"
3698
         "+ in (default)\n"
3699
         "  use ground terms inside given quantified formula only.\n";
3700
    std::exit(1);
3701
  }
3702
  throw OptionException(std::string("unknown option for --sygus-inst-scope: `") +
3703
                        optarg + "'.  Try --sygus-inst-scope=help.");
3704
}
3705
3706
std::ostream& operator<<(std::ostream& os, SygusInstTermSelMode mode)
3707
{
3708
  switch(mode) {
3709
    case SygusInstTermSelMode::MIN:
3710
      return os << "SygusInstTermSelMode::MIN";
3711
    case SygusInstTermSelMode::BOTH:
3712
      return os << "SygusInstTermSelMode::BOTH";
3713
    case SygusInstTermSelMode::MAX:
3714
      return os << "SygusInstTermSelMode::MAX";
3715
    default:
3716
      Unreachable();
3717
  }
3718
  return os;
3719
}
3720
3721
SygusInstTermSelMode stringToSygusInstTermSelMode(const std::string& optarg)
3722
{
3723
  if (optarg == "min")
3724
  {
3725
    return SygusInstTermSelMode::MIN;
3726
  }
3727
  else if (optarg == "both")
3728
  {
3729
    return SygusInstTermSelMode::BOTH;
3730
  }
3731
  else if (optarg == "max")
3732
  {
3733
    return SygusInstTermSelMode::MAX;
3734
  }
3735
  else if (optarg == "help")
3736
  {
3737
    std::cerr << "Ground term selection modes.\n"
3738
         "Available modes for --sygus-inst-term-sel are:\n"
3739
         "+ min (default)\n"
3740
         "  collect minimal ground terms only.\n"
3741
         "+ both\n"
3742
         "  combines minimal and maximal .\n"
3743
         "+ max\n"
3744
         "  collect maximal ground terms only.\n";
3745
    std::exit(1);
3746
  }
3747
  throw OptionException(std::string("unknown option for --sygus-inst-term-sel: `") +
3748
                        optarg + "'.  Try --sygus-inst-term-sel=help.");
3749
}
3750
3751
std::ostream& operator<<(std::ostream& os, SygusInvTemplMode mode)
3752
{
3753
  switch(mode) {
3754
    case SygusInvTemplMode::NONE:
3755
      return os << "SygusInvTemplMode::NONE";
3756
    case SygusInvTemplMode::PRE:
3757
      return os << "SygusInvTemplMode::PRE";
3758
    case SygusInvTemplMode::POST:
3759
      return os << "SygusInvTemplMode::POST";
3760
    default:
3761
      Unreachable();
3762
  }
3763
  return os;
3764
}
3765
3766
3
SygusInvTemplMode stringToSygusInvTemplMode(const std::string& optarg)
3767
{
3768
3
  if (optarg == "none")
3769
  {
3770
    return SygusInvTemplMode::NONE;
3771
  }
3772
3
  else if (optarg == "pre")
3773
  {
3774
1
    return SygusInvTemplMode::PRE;
3775
  }
3776
2
  else if (optarg == "post")
3777
  {
3778
2
    return SygusInvTemplMode::POST;
3779
  }
3780
  else if (optarg == "help")
3781
  {
3782
    std::cerr << "Template modes for sygus invariant synthesis.\n"
3783
         "Available modes for --sygus-inv-templ are:\n"
3784
         "+ none\n"
3785
         "  Synthesize invariant directly.\n"
3786
         "+ pre\n"
3787
         "  Synthesize invariant based on weakening of precondition.\n"
3788
         "+ post (default)\n"
3789
         "  Synthesize invariant based on strengthening of postcondition.\n";
3790
    std::exit(1);
3791
  }
3792
  throw OptionException(std::string("unknown option for --sygus-inv-templ: `") +
3793
                        optarg + "'.  Try --sygus-inv-templ=help.");
3794
}
3795
3796
std::ostream& operator<<(std::ostream& os, SygusQueryDumpFilesMode mode)
3797
{
3798
  switch(mode) {
3799
    case SygusQueryDumpFilesMode::NONE:
3800
      return os << "SygusQueryDumpFilesMode::NONE";
3801
    case SygusQueryDumpFilesMode::ALL:
3802
      return os << "SygusQueryDumpFilesMode::ALL";
3803
    case SygusQueryDumpFilesMode::UNSOLVED:
3804
      return os << "SygusQueryDumpFilesMode::UNSOLVED";
3805
    default:
3806
      Unreachable();
3807
  }
3808
  return os;
3809
}
3810
3811
SygusQueryDumpFilesMode stringToSygusQueryDumpFilesMode(const std::string& optarg)
3812
{
3813
  if (optarg == "none")
3814
  {
3815
    return SygusQueryDumpFilesMode::NONE;
3816
  }
3817
  else if (optarg == "all")
3818
  {
3819
    return SygusQueryDumpFilesMode::ALL;
3820
  }
3821
  else if (optarg == "unsolved")
3822
  {
3823
    return SygusQueryDumpFilesMode::UNSOLVED;
3824
  }
3825
  else if (optarg == "help")
3826
  {
3827
    std::cerr << "Query file options.\n"
3828
         "Available modes for --sygus-query-gen-dump-files are:\n"
3829
         "+ none (default)\n"
3830
         "  Do not dump query files when using --sygus-query-gen.\n"
3831
         "+ all\n"
3832
         "  Dump all query files.\n"
3833
         "+ unsolved\n"
3834
         "  Dump query files that the subsolver did not solve.\n";
3835
    std::exit(1);
3836
  }
3837
  throw OptionException(std::string("unknown option for --sygus-query-gen-dump-files: `") +
3838
                        optarg + "'.  Try --sygus-query-gen-dump-files=help.");
3839
}
3840
3841
std::ostream& operator<<(std::ostream& os, CegqiSingleInvRconsMode mode)
3842
{
3843
  switch(mode) {
3844
    case CegqiSingleInvRconsMode::NONE:
3845
      return os << "CegqiSingleInvRconsMode::NONE";
3846
    case CegqiSingleInvRconsMode::ALL:
3847
      return os << "CegqiSingleInvRconsMode::ALL";
3848
    case CegqiSingleInvRconsMode::TRY:
3849
      return os << "CegqiSingleInvRconsMode::TRY";
3850
    case CegqiSingleInvRconsMode::ALL_LIMIT:
3851
      return os << "CegqiSingleInvRconsMode::ALL_LIMIT";
3852
    default:
3853
      Unreachable();
3854
  }
3855
  return os;
3856
}
3857
3858
CegqiSingleInvRconsMode stringToCegqiSingleInvRconsMode(const std::string& optarg)
3859
{
3860
  if (optarg == "none")
3861
  {
3862
    return CegqiSingleInvRconsMode::NONE;
3863
  }
3864
  else if (optarg == "all")
3865
  {
3866
    return CegqiSingleInvRconsMode::ALL;
3867
  }
3868
  else if (optarg == "try")
3869
  {
3870
    return CegqiSingleInvRconsMode::TRY;
3871
  }
3872
  else if (optarg == "all-limit")
3873
  {
3874
    return CegqiSingleInvRconsMode::ALL_LIMIT;
3875
  }
3876
  else if (optarg == "help")
3877
  {
3878
    std::cerr << "Modes for reconstruction solutions while using single invocation techniques.\n"
3879
         "Available modes for --sygus-si-rcons are:\n"
3880
         "+ none\n"
3881
         "  Do not try to reconstruct solutions in the original (user-provided) grammar\n"
3882
         "  when using single invocation techniques. In this mode, solutions produced by\n"
3883
         "  cvc5 may violate grammar restrictions.\n"
3884
         "+ all\n"
3885
         "  Try to reconstruct solutions in the original grammar. In this mode, we do not\n"
3886
         "  terminate until a solution is successfully reconstructed.\n"
3887
         "+ try\n"
3888
         "  Try to reconstruct solutions in the original grammar when using single\n"
3889
         "  invocation techniques in an incomplete (fail-fast) manner.\n"
3890
         "+ all-limit (default)\n"
3891
         "  Try to reconstruct solutions in the original grammar, but termintate if a\n"
3892
         "  maximum number of rounds for reconstruction is exceeded.\n";
3893
    std::exit(1);
3894
  }
3895
  throw OptionException(std::string("unknown option for --sygus-si-rcons: `") +
3896
                        optarg + "'.  Try --sygus-si-rcons=help.");
3897
}
3898
3899
std::ostream& operator<<(std::ostream& os, CegqiSingleInvMode mode)
3900
{
3901
  switch(mode) {
3902
    case CegqiSingleInvMode::NONE:
3903
      return os << "CegqiSingleInvMode::NONE";
3904
    case CegqiSingleInvMode::ALL:
3905
      return os << "CegqiSingleInvMode::ALL";
3906
    case CegqiSingleInvMode::USE:
3907
      return os << "CegqiSingleInvMode::USE";
3908
    default:
3909
      Unreachable();
3910
  }
3911
  return os;
3912
}
3913
3914
47
CegqiSingleInvMode stringToCegqiSingleInvMode(const std::string& optarg)
3915
{
3916
47
  if (optarg == "none")
3917
  {
3918
22
    return CegqiSingleInvMode::NONE;
3919
  }
3920
25
  else if (optarg == "all")
3921
  {
3922
25
    return CegqiSingleInvMode::ALL;
3923
  }
3924
  else if (optarg == "use")
3925
  {
3926
    return CegqiSingleInvMode::USE;
3927
  }
3928
  else if (optarg == "help")
3929
  {
3930
    std::cerr << "Modes for single invocation techniques.\n"
3931
         "Available modes for --sygus-si are:\n"
3932
         "+ none (default)\n"
3933
         "  Do not use single invocation techniques.\n"
3934
         "+ all\n"
3935
         "  Always use single invocation techniques.\n"
3936
         "+ use\n"
3937
         "  Use single invocation techniques only if grammar is not restrictive.\n";
3938
    std::exit(1);
3939
  }
3940
  throw OptionException(std::string("unknown option for --sygus-si: `") +
3941
                        optarg + "'.  Try --sygus-si=help.");
3942
}
3943
3944
std::ostream& operator<<(std::ostream& os, SygusUnifPiMode mode)
3945
{
3946
  switch(mode) {
3947
    case SygusUnifPiMode::NONE:
3948
      return os << "SygusUnifPiMode::NONE";
3949
    case SygusUnifPiMode::COMPLETE:
3950
      return os << "SygusUnifPiMode::COMPLETE";
3951
    case SygusUnifPiMode::CENUM_IGAIN:
3952
      return os << "SygusUnifPiMode::CENUM_IGAIN";
3953
    case SygusUnifPiMode::CENUM:
3954
      return os << "SygusUnifPiMode::CENUM";
3955
    default:
3956
      Unreachable();
3957
  }
3958
  return os;
3959
}
3960
3961
8
SygusUnifPiMode stringToSygusUnifPiMode(const std::string& optarg)
3962
{
3963
8
  if (optarg == "none")
3964
  {
3965
    return SygusUnifPiMode::NONE;
3966
  }
3967
8
  else if (optarg == "complete")
3968
  {
3969
8
    return SygusUnifPiMode::COMPLETE;
3970
  }
3971
  else if (optarg == "cond-enum-igain")
3972
  {
3973
    return SygusUnifPiMode::CENUM_IGAIN;
3974
  }
3975
  else if (optarg == "cond-enum")
3976
  {
3977
    return SygusUnifPiMode::CENUM;
3978
  }
3979
  else if (optarg == "help")
3980
  {
3981
    std::cerr << "Modes for piecewise-independent unification.\n"
3982
         "Available modes for --sygus-unif-pi are:\n"
3983
         "+ none (default)\n"
3984
         "  Do not use piecewise-independent unification.\n"
3985
         "+ complete\n"
3986
         "  Use complete approach for piecewise-independent unification (see Section 3 of\n"
3987
         "  Barbosa et al FMCAD 2019)\n"
3988
         "+ cond-enum-igain\n"
3989
         "  Same as cond-enum, but additionally uses an information gain heuristic when\n"
3990
         "  doing decision tree learning.\n"
3991
         "+ cond-enum\n"
3992
         "  Use unconstrained condition enumeration for piecewise-independent unification\n"
3993
         "  (see Section 4 of Barbosa et al FMCAD 2019).\n";
3994
    std::exit(1);
3995
  }
3996
  throw OptionException(std::string("unknown option for --sygus-unif-pi: `") +
3997
                        optarg + "'.  Try --sygus-unif-pi=help.");
3998
}
3999
4000
std::ostream& operator<<(std::ostream& os, TermDbMode mode)
4001
{
4002
  switch(mode) {
4003
    case TermDbMode::ALL:
4004
      return os << "TermDbMode::ALL";
4005
    case TermDbMode::RELEVANT:
4006
      return os << "TermDbMode::RELEVANT";
4007
    default:
4008
      Unreachable();
4009
  }
4010
  return os;
4011
}
4012
4013
TermDbMode stringToTermDbMode(const std::string& optarg)
4014
{
4015
  if (optarg == "all")
4016
  {
4017
    return TermDbMode::ALL;
4018
  }
4019
  else if (optarg == "relevant")
4020
  {
4021
    return TermDbMode::RELEVANT;
4022
  }
4023
  else if (optarg == "help")
4024
  {
4025
    std::cerr << "Modes for terms included in the quantifiers term database.\n"
4026
         "Available modes for --term-db-mode are:\n"
4027
         "+ all (default)\n"
4028
         "  Quantifiers module considers all ground terms.\n"
4029
         "+ relevant\n"
4030
         "  Quantifiers module considers only ground terms connected to current\n"
4031
         "  assertions.\n";
4032
    std::exit(1);
4033
  }
4034
  throw OptionException(std::string("unknown option for --term-db-mode: `") +
4035
                        optarg + "'.  Try --term-db-mode=help.");
4036
}
4037
4038
std::ostream& operator<<(std::ostream& os, TriggerActiveSelMode mode)
4039
{
4040
  switch(mode) {
4041
    case TriggerActiveSelMode::ALL:
4042
      return os << "TriggerActiveSelMode::ALL";
4043
    case TriggerActiveSelMode::MAX:
4044
      return os << "TriggerActiveSelMode::MAX";
4045
    case TriggerActiveSelMode::MIN:
4046
      return os << "TriggerActiveSelMode::MIN";
4047
    default:
4048
      Unreachable();
4049
  }
4050
  return os;
4051
}
4052
4053
TriggerActiveSelMode stringToTriggerActiveSelMode(const std::string& optarg)
4054
{
4055
  if (optarg == "all")
4056
  {
4057
    return TriggerActiveSelMode::ALL;
4058
  }
4059
  else if (optarg == "max")
4060
  {
4061
    return TriggerActiveSelMode::MAX;
4062
  }
4063
  else if (optarg == "min")
4064
  {
4065
    return TriggerActiveSelMode::MIN;
4066
  }
4067
  else if (optarg == "help")
4068
  {
4069
    std::cerr << "Trigger active selection modes.\n"
4070
         "Available modes for --trigger-active-sel are:\n"
4071
         "+ all (default)\n"
4072
         "  Make all triggers active.\n"
4073
         "+ max\n"
4074
         "  Activate triggers with maximal ground terms.\n"
4075
         "+ min\n"
4076
         "  Activate triggers with minimal ground terms.\n";
4077
    std::exit(1);
4078
  }
4079
  throw OptionException(std::string("unknown option for --trigger-active-sel: `") +
4080
                        optarg + "'.  Try --trigger-active-sel=help.");
4081
}
4082
4083
std::ostream& operator<<(std::ostream& os, TriggerSelMode mode)
4084
{
4085
  switch(mode) {
4086
    case TriggerSelMode::ALL:
4087
      return os << "TriggerSelMode::ALL";
4088
    case TriggerSelMode::MIN:
4089
      return os << "TriggerSelMode::MIN";
4090
    case TriggerSelMode::MAX:
4091
      return os << "TriggerSelMode::MAX";
4092
    case TriggerSelMode::MIN_SINGLE_MAX:
4093
      return os << "TriggerSelMode::MIN_SINGLE_MAX";
4094
    case TriggerSelMode::MIN_SINGLE_ALL:
4095
      return os << "TriggerSelMode::MIN_SINGLE_ALL";
4096
    default:
4097
      Unreachable();
4098
  }
4099
  return os;
4100
}
4101
4102
TriggerSelMode stringToTriggerSelMode(const std::string& optarg)
4103
{
4104
  if (optarg == "all")
4105
  {
4106
    return TriggerSelMode::ALL;
4107
  }
4108
  else if (optarg == "min")
4109
  {
4110
    return TriggerSelMode::MIN;
4111
  }
4112
  else if (optarg == "max")
4113
  {
4114
    return TriggerSelMode::MAX;
4115
  }
4116
  else if (optarg == "min-s-max")
4117
  {
4118
    return TriggerSelMode::MIN_SINGLE_MAX;
4119
  }
4120
  else if (optarg == "min-s-all")
4121
  {
4122
    return TriggerSelMode::MIN_SINGLE_ALL;
4123
  }
4124
  else if (optarg == "help")
4125
  {
4126
    std::cerr << "Trigger selection modes.\n"
4127
         "Available modes for --trigger-sel are:\n"
4128
         "+ all\n"
4129
         "  Consider all subterms that meet criteria for triggers.\n"
4130
         "+ min (default)\n"
4131
         "  Consider only minimal subterms that meet criteria for triggers.\n"
4132
         "+ max\n"
4133
         "  Consider only maximal subterms that meet criteria for triggers.\n"
4134
         "+ min-s-max\n"
4135
         "  Consider only minimal subterms that meet criteria for single triggers, maximal\n"
4136
         "  otherwise.\n"
4137
         "+ min-s-all\n"
4138
         "  Consider only minimal subterms that meet criteria for single triggers, all\n"
4139
         "  otherwise.\n";
4140
    std::exit(1);
4141
  }
4142
  throw OptionException(std::string("unknown option for --trigger-sel: `") +
4143
                        optarg + "'.  Try --trigger-sel=help.");
4144
}
4145
4146
std::ostream& operator<<(std::ostream& os, UserPatMode mode)
4147
{
4148
  switch(mode) {
4149
    case UserPatMode::TRUST:
4150
      return os << "UserPatMode::TRUST";
4151
    case UserPatMode::IGNORE:
4152
      return os << "UserPatMode::IGNORE";
4153
    case UserPatMode::USE:
4154
      return os << "UserPatMode::USE";
4155
    case UserPatMode::INTERLEAVE:
4156
      return os << "UserPatMode::INTERLEAVE";
4157
    case UserPatMode::RESORT:
4158
      return os << "UserPatMode::RESORT";
4159
    default:
4160
      Unreachable();
4161
  }
4162
  return os;
4163
}
4164
4165
UserPatMode stringToUserPatMode(const std::string& optarg)
4166
{
4167
  if (optarg == "trust")
4168
  {
4169
    return UserPatMode::TRUST;
4170
  }
4171
  else if (optarg == "ignore")
4172
  {
4173
    return UserPatMode::IGNORE;
4174
  }
4175
  else if (optarg == "use")
4176
  {
4177
    return UserPatMode::USE;
4178
  }
4179
  else if (optarg == "interleave")
4180
  {
4181
    return UserPatMode::INTERLEAVE;
4182
  }
4183
  else if (optarg == "resort")
4184
  {
4185
    return UserPatMode::RESORT;
4186
  }
4187
  else if (optarg == "help")
4188
  {
4189
    std::cerr << "These modes determine how user provided patterns (triggers) are used during\n"
4190
         "E-matching. The modes vary on when instantiation based on user-provided\n"
4191
         "triggers is combined with instantiation based on automatically selected\n"
4192
         "triggers.\n"
4193
         "Available modes for --user-pat are:\n"
4194
         "+ trust (default)\n"
4195
         "  When provided, use only user-provided patterns for a quantified formula.\n"
4196
         "+ ignore\n"
4197
         "  Ignore user-provided patterns.\n"
4198
         "+ use\n"
4199
         "  Use both user-provided and auto-generated patterns when patterns are provided\n"
4200
         "  for a quantified formula.\n"
4201
         "+ interleave\n"
4202
         "  Alternate between use/resort.\n"
4203
         "+ resort\n"
4204
         "  Use user-provided patterns only after auto-generated patterns saturate.\n";
4205
    std::exit(1);
4206
  }
4207
  throw OptionException(std::string("unknown option for --user-pat: `") +
4208
                        optarg + "'.  Try --user-pat=help.");
4209
}
4210
4211
4212
}  // namespace options
4213
28194
}  // namespace cvc5
4214
// clang-format on