GCC Code Coverage Report
Directory: . Exec Total Coverage
File: build-coverage/src/options/smt_options.cpp Lines: 215 559 38.5 %
Date: 2021-05-22 Branches: 31 238 13.0 %

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/smt_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::abstractValues__option_t::type& Options::ref(
29
    options::abstractValues__option_t)
30
{
31
    return smt().abstractValues;
32
}
33
2062
template <> const options::abstractValues__option_t::type& Options::operator[](
34
    options::abstractValues__option_t) const
35
{
36
2062
  return smt().abstractValues;
37
}
38
template <> bool Options::wasSetByUser(options::abstractValues__option_t) const
39
{
40
  return smt().abstractValues__setByUser__;
41
}
42
36
template <> options::ackermann__option_t::type& Options::ref(
43
    options::ackermann__option_t)
44
{
45
36
    return smt().ackermann;
46
}
47
31807
template <> const options::ackermann__option_t::type& Options::operator[](
48
    options::ackermann__option_t) const
49
{
50
31807
  return smt().ackermann;
51
}
52
template <> bool Options::wasSetByUser(options::ackermann__option_t) const
53
{
54
  return smt().ackermann__setByUser__;
55
}
56
template <> options::blockModelsMode__option_t::type& Options::ref(
57
    options::blockModelsMode__option_t)
58
{
59
    return smt().blockModelsMode;
60
}
61
7160
template <> const options::blockModelsMode__option_t::type& Options::operator[](
62
    options::blockModelsMode__option_t) const
63
{
64
7160
  return smt().blockModelsMode;
65
}
66
template <> bool Options::wasSetByUser(options::blockModelsMode__option_t) const
67
{
68
  return smt().blockModelsMode__setByUser__;
69
}
70
template <> options::BVAndIntegerGranularity__option_t::type& Options::ref(
71
    options::BVAndIntegerGranularity__option_t)
72
{
73
    return smt().BVAndIntegerGranularity;
74
}
75
192
template <> const options::BVAndIntegerGranularity__option_t::type& Options::operator[](
76
    options::BVAndIntegerGranularity__option_t) const
77
{
78
192
  return smt().BVAndIntegerGranularity;
79
}
80
template <> bool Options::wasSetByUser(options::BVAndIntegerGranularity__option_t) const
81
{
82
  return smt().BVAndIntegerGranularity__setByUser__;
83
}
84
template <> options::checkAbducts__option_t::type& Options::ref(
85
    options::checkAbducts__option_t)
86
{
87
    return smt().checkAbducts;
88
}
89
13
template <> const options::checkAbducts__option_t::type& Options::operator[](
90
    options::checkAbducts__option_t) const
91
{
92
13
  return smt().checkAbducts;
93
}
94
template <> bool Options::wasSetByUser(options::checkAbducts__option_t) const
95
{
96
  return smt().checkAbducts__setByUser__;
97
}
98
template <> options::checkInterpols__option_t::type& Options::ref(
99
    options::checkInterpols__option_t)
100
{
101
    return smt().checkInterpols;
102
}
103
10
template <> const options::checkInterpols__option_t::type& Options::operator[](
104
    options::checkInterpols__option_t) const
105
{
106
10
  return smt().checkInterpols;
107
}
108
template <> bool Options::wasSetByUser(options::checkInterpols__option_t) const
109
{
110
  return smt().checkInterpols__setByUser__;
111
}
112
1280
template <> options::checkModels__option_t::type& Options::ref(
113
    options::checkModels__option_t)
114
{
115
1280
    return smt().checkModels;
116
}
117
54132
template <> const options::checkModels__option_t::type& Options::operator[](
118
    options::checkModels__option_t) const
119
{
120
54132
  return smt().checkModels;
121
}
122
46
template <> bool Options::wasSetByUser(options::checkModels__option_t) const
123
{
124
46
  return smt().checkModels__setByUser__;
125
}
126
1318
template <> options::checkProofs__option_t::type& Options::ref(
127
    options::checkProofs__option_t)
128
{
129
1318
    return smt().checkProofs;
130
}
131
26169
template <> const options::checkProofs__option_t::type& Options::operator[](
132
    options::checkProofs__option_t) const
133
{
134
26169
  return smt().checkProofs;
135
}
136
template <> bool Options::wasSetByUser(options::checkProofs__option_t) const
137
{
138
  return smt().checkProofs__setByUser__;
139
}
140
168
template <> options::checkSynthSol__option_t::type& Options::ref(
141
    options::checkSynthSol__option_t)
142
{
143
168
    return smt().checkSynthSol;
144
}
145
8407
template <> const options::checkSynthSol__option_t::type& Options::operator[](
146
    options::checkSynthSol__option_t) const
147
{
148
8407
  return smt().checkSynthSol;
149
}
150
template <> bool Options::wasSetByUser(options::checkSynthSol__option_t) const
151
{
152
  return smt().checkSynthSol__setByUser__;
153
}
154
1310
template <> options::checkUnsatCores__option_t::type& Options::ref(
155
    options::checkUnsatCores__option_t)
156
{
157
1310
    return smt().checkUnsatCores;
158
}
159
23533
template <> const options::checkUnsatCores__option_t::type& Options::operator[](
160
    options::checkUnsatCores__option_t) const
161
{
162
23533
  return smt().checkUnsatCores;
163
}
164
template <> bool Options::wasSetByUser(options::checkUnsatCores__option_t) const
165
{
166
  return smt().checkUnsatCores__setByUser__;
167
}
168
template <> options::debugCheckModels__option_t::type& Options::ref(
169
    options::debugCheckModels__option_t)
170
{
171
    return smt().debugCheckModels;
172
}
173
12342
template <> const options::debugCheckModels__option_t::type& Options::operator[](
174
    options::debugCheckModels__option_t) const
175
{
176
12342
  return smt().debugCheckModels;
177
}
178
template <> bool Options::wasSetByUser(options::debugCheckModels__option_t) const
179
{
180
  return smt().debugCheckModels__setByUser__;
181
}
182
template <> options::diagnosticChannelName__option_t::type& Options::ref(
183
    options::diagnosticChannelName__option_t)
184
{
185
    return smt().diagnosticChannelName;
186
}
187
template <> const options::diagnosticChannelName__option_t::type& Options::operator[](
188
    options::diagnosticChannelName__option_t) const
189
{
190
  return smt().diagnosticChannelName;
191
}
192
10093
template <> bool Options::wasSetByUser(options::diagnosticChannelName__option_t) const
193
{
194
10093
  return smt().diagnosticChannelName__setByUser__;
195
}
196
template <> options::dumpInstantiations__option_t::type& Options::ref(
197
    options::dumpInstantiations__option_t)
198
{
199
    return smt().dumpInstantiations;
200
}
201
301200
template <> const options::dumpInstantiations__option_t::type& Options::operator[](
202
    options::dumpInstantiations__option_t) const
203
{
204
301200
  return smt().dumpInstantiations;
205
}
206
template <> bool Options::wasSetByUser(options::dumpInstantiations__option_t) const
207
{
208
  return smt().dumpInstantiations__setByUser__;
209
}
210
template <> options::dumpModels__option_t::type& Options::ref(
211
    options::dumpModels__option_t)
212
{
213
    return smt().dumpModels;
214
}
215
309413
template <> const options::dumpModels__option_t::type& Options::operator[](
216
    options::dumpModels__option_t) const
217
{
218
309413
  return smt().dumpModels;
219
}
220
template <> bool Options::wasSetByUser(options::dumpModels__option_t) const
221
{
222
  return smt().dumpModels__setByUser__;
223
}
224
template <> options::dumpProofs__option_t::type& Options::ref(
225
    options::dumpProofs__option_t)
226
{
227
    return smt().dumpProofs;
228
}
229
309545
template <> const options::dumpProofs__option_t::type& Options::operator[](
230
    options::dumpProofs__option_t) const
231
{
232
309545
  return smt().dumpProofs;
233
}
234
template <> bool Options::wasSetByUser(options::dumpProofs__option_t) const
235
{
236
  return smt().dumpProofs__setByUser__;
237
}
238
template <> options::dumpToFileName__option_t::type& Options::ref(
239
    options::dumpToFileName__option_t)
240
{
241
    return smt().dumpToFileName;
242
}
243
template <> const options::dumpToFileName__option_t::type& Options::operator[](
244
    options::dumpToFileName__option_t) const
245
{
246
  return smt().dumpToFileName;
247
}
248
10093
template <> bool Options::wasSetByUser(options::dumpToFileName__option_t) const
249
{
250
10093
  return smt().dumpToFileName__setByUser__;
251
}
252
4
template <> options::dumpUnsatCores__option_t::type& Options::ref(
253
    options::dumpUnsatCores__option_t)
254
{
255
4
    return smt().dumpUnsatCores;
256
}
257
309565
template <> const options::dumpUnsatCores__option_t::type& Options::operator[](
258
    options::dumpUnsatCores__option_t) const
259
{
260
309565
  return smt().dumpUnsatCores;
261
}
262
template <> bool Options::wasSetByUser(options::dumpUnsatCores__option_t) const
263
{
264
  return smt().dumpUnsatCores__setByUser__;
265
}
266
template <> options::dumpUnsatCoresFull__option_t::type& Options::ref(
267
    options::dumpUnsatCoresFull__option_t)
268
{
269
    return smt().dumpUnsatCoresFull;
270
}
271
310671
template <> const options::dumpUnsatCoresFull__option_t::type& Options::operator[](
272
    options::dumpUnsatCoresFull__option_t) const
273
{
274
310671
  return smt().dumpUnsatCoresFull;
275
}
276
template <> bool Options::wasSetByUser(options::dumpUnsatCoresFull__option_t) const
277
{
278
  return smt().dumpUnsatCoresFull__setByUser__;
279
}
280
template <> options::dumpModeString__option_t::type& Options::ref(
281
    options::dumpModeString__option_t)
282
{
283
    return smt().dumpModeString;
284
}
285
3
template <> const options::dumpModeString__option_t::type& Options::operator[](
286
    options::dumpModeString__option_t) const
287
{
288
3
  return smt().dumpModeString;
289
}
290
10094
template <> bool Options::wasSetByUser(options::dumpModeString__option_t) const
291
{
292
10094
  return smt().dumpModeString__setByUser__;
293
}
294
3
template <> options::earlyIteRemoval__option_t::type& Options::ref(
295
    options::earlyIteRemoval__option_t)
296
{
297
3
    return smt().earlyIteRemoval;
298
}
299
12885
template <> const options::earlyIteRemoval__option_t::type& Options::operator[](
300
    options::earlyIteRemoval__option_t) const
301
{
302
12885
  return smt().earlyIteRemoval;
303
}
304
3
template <> bool Options::wasSetByUser(options::earlyIteRemoval__option_t) const
305
{
306
3
  return smt().earlyIteRemoval__setByUser__;
307
}
308
template <> options::expandDefinitions__option_t::type& Options::ref(
309
    options::expandDefinitions__option_t)
310
{
311
    return smt().expandDefinitions;
312
}
313
template <> const options::expandDefinitions__option_t::type& Options::operator[](
314
    options::expandDefinitions__option_t) const
315
{
316
  return smt().expandDefinitions;
317
}
318
template <> bool Options::wasSetByUser(options::expandDefinitions__option_t) const
319
{
320
  return smt().expandDefinitions__setByUser__;
321
}
322
template <> options::extRewPrep__option_t::type& Options::ref(
323
    options::extRewPrep__option_t)
324
{
325
    return smt().extRewPrep;
326
}
327
12885
template <> const options::extRewPrep__option_t::type& Options::operator[](
328
    options::extRewPrep__option_t) const
329
{
330
12885
  return smt().extRewPrep;
331
}
332
template <> bool Options::wasSetByUser(options::extRewPrep__option_t) const
333
{
334
  return smt().extRewPrep__setByUser__;
335
}
336
template <> options::extRewPrepAgg__option_t::type& Options::ref(
337
    options::extRewPrepAgg__option_t)
338
{
339
    return smt().extRewPrepAgg;
340
}
341
24
template <> const options::extRewPrepAgg__option_t::type& Options::operator[](
342
    options::extRewPrepAgg__option_t) const
343
{
344
24
  return smt().extRewPrepAgg;
345
}
346
template <> bool Options::wasSetByUser(options::extRewPrepAgg__option_t) const
347
{
348
  return smt().extRewPrepAgg__setByUser__;
349
}
350
template <> options::forceNoLimitCpuWhileDump__option_t::type& Options::ref(
351
    options::forceNoLimitCpuWhileDump__option_t)
352
{
353
    return smt().forceNoLimitCpuWhileDump;
354
}
355
28
template <> const options::forceNoLimitCpuWhileDump__option_t::type& Options::operator[](
356
    options::forceNoLimitCpuWhileDump__option_t) const
357
{
358
28
  return smt().forceNoLimitCpuWhileDump;
359
}
360
template <> bool Options::wasSetByUser(options::forceNoLimitCpuWhileDump__option_t) const
361
{
362
  return smt().forceNoLimitCpuWhileDump__setByUser__;
363
}
364
template <> options::foreignTheoryRewrite__option_t::type& Options::ref(
365
    options::foreignTheoryRewrite__option_t)
366
{
367
    return smt().foreignTheoryRewrite;
368
}
369
12885
template <> const options::foreignTheoryRewrite__option_t::type& Options::operator[](
370
    options::foreignTheoryRewrite__option_t) const
371
{
372
12885
  return smt().foreignTheoryRewrite;
373
}
374
template <> bool Options::wasSetByUser(options::foreignTheoryRewrite__option_t) const
375
{
376
  return smt().foreignTheoryRewrite__setByUser__;
377
}
378
template <> options::iandMode__option_t::type& Options::ref(
379
    options::iandMode__option_t)
380
{
381
    return smt().iandMode;
382
}
383
54
template <> const options::iandMode__option_t::type& Options::operator[](
384
    options::iandMode__option_t) const
385
{
386
54
  return smt().iandMode;
387
}
388
template <> bool Options::wasSetByUser(options::iandMode__option_t) const
389
{
390
  return smt().iandMode__setByUser__;
391
}
392
template <> options::incrementalSolving__option_t::type& Options::ref(
393
    options::incrementalSolving__option_t)
394
{
395
    return smt().incrementalSolving;
396
}
397
5366868
template <> const options::incrementalSolving__option_t::type& Options::operator[](
398
    options::incrementalSolving__option_t) const
399
{
400
5366868
  return smt().incrementalSolving;
401
}
402
5878
template <> bool Options::wasSetByUser(options::incrementalSolving__option_t) const
403
{
404
5878
  return smt().incrementalSolving__setByUser__;
405
}
406
20
template <> options::interactiveMode__option_t::type& Options::ref(
407
    options::interactiveMode__option_t)
408
{
409
20
    return smt().interactiveMode;
410
}
411
template <> const options::interactiveMode__option_t::type& Options::operator[](
412
    options::interactiveMode__option_t) const
413
{
414
  return smt().interactiveMode;
415
}
416
template <> bool Options::wasSetByUser(options::interactiveMode__option_t) const
417
{
418
  return smt().interactiveMode__setByUser__;
419
}
420
template <> options::doITESimp__option_t::type& Options::ref(
421
    options::doITESimp__option_t)
422
{
423
    return smt().doITESimp;
424
}
425
23955
template <> const options::doITESimp__option_t::type& Options::operator[](
426
    options::doITESimp__option_t) const
427
{
428
23955
  return smt().doITESimp;
429
}
430
template <> bool Options::wasSetByUser(options::doITESimp__option_t) const
431
{
432
  return smt().doITESimp__setByUser__;
433
}
434
template <> options::modelCoresMode__option_t::type& Options::ref(
435
    options::modelCoresMode__option_t)
436
{
437
    return smt().modelCoresMode;
438
}
439
7154
template <> const options::modelCoresMode__option_t::type& Options::operator[](
440
    options::modelCoresMode__option_t) const
441
{
442
7154
  return smt().modelCoresMode;
443
}
444
template <> bool Options::wasSetByUser(options::modelCoresMode__option_t) const
445
{
446
  return smt().modelCoresMode__setByUser__;
447
}
448
template <> options::modelUninterpPrint__option_t::type& Options::ref(
449
    options::modelUninterpPrint__option_t)
450
{
451
    return smt().modelUninterpPrint;
452
}
453
45
template <> const options::modelUninterpPrint__option_t::type& Options::operator[](
454
    options::modelUninterpPrint__option_t) const
455
{
456
45
  return smt().modelUninterpPrint;
457
}
458
template <> bool Options::wasSetByUser(options::modelUninterpPrint__option_t) const
459
{
460
  return smt().modelUninterpPrint__setByUser__;
461
}
462
template <> options::modelWitnessValue__option_t::type& Options::ref(
463
    options::modelWitnessValue__option_t)
464
{
465
    return smt().modelWitnessValue;
466
}
467
28
template <> const options::modelWitnessValue__option_t::type& Options::operator[](
468
    options::modelWitnessValue__option_t) const
469
{
470
28
  return smt().modelWitnessValue;
471
}
472
template <> bool Options::wasSetByUser(options::modelWitnessValue__option_t) const
473
{
474
  return smt().modelWitnessValue__setByUser__;
475
}
476
template <> options::doITESimpOnRepeat__option_t::type& Options::ref(
477
    options::doITESimpOnRepeat__option_t)
478
{
479
    return smt().doITESimpOnRepeat;
480
}
481
template <> const options::doITESimpOnRepeat__option_t::type& Options::operator[](
482
    options::doITESimpOnRepeat__option_t) const
483
{
484
  return smt().doITESimpOnRepeat;
485
}
486
template <> bool Options::wasSetByUser(options::doITESimpOnRepeat__option_t) const
487
{
488
  return smt().doITESimpOnRepeat__setByUser__;
489
}
490
template <> options::produceAbducts__option_t::type& Options::ref(
491
    options::produceAbducts__option_t)
492
{
493
    return smt().produceAbducts;
494
}
495
24739
template <> const options::produceAbducts__option_t::type& Options::operator[](
496
    options::produceAbducts__option_t) const
497
{
498
24739
  return smt().produceAbducts;
499
}
500
template <> bool Options::wasSetByUser(options::produceAbducts__option_t) const
501
{
502
  return smt().produceAbducts__setByUser__;
503
}
504
3630
template <> options::produceAssertions__option_t::type& Options::ref(
505
    options::produceAssertions__option_t)
506
{
507
3630
    return smt().produceAssertions;
508
}
509
15400
template <> const options::produceAssertions__option_t::type& Options::operator[](
510
    options::produceAssertions__option_t) const
511
{
512
15400
  return smt().produceAssertions;
513
}
514
template <> bool Options::wasSetByUser(options::produceAssertions__option_t) const
515
{
516
  return smt().produceAssertions__setByUser__;
517
}
518
1294
template <> options::produceAssignments__option_t::type& Options::ref(
519
    options::produceAssignments__option_t)
520
{
521
1294
    return smt().produceAssignments;
522
}
523
17983
template <> const options::produceAssignments__option_t::type& Options::operator[](
524
    options::produceAssignments__option_t) const
525
{
526
17983
  return smt().produceAssignments;
527
}
528
46
template <> bool Options::wasSetByUser(options::produceAssignments__option_t) const
529
{
530
46
  return smt().produceAssignments__setByUser__;
531
}
532
template <> options::produceInterpols__option_t::type& Options::ref(
533
    options::produceInterpols__option_t)
534
{
535
    return smt().produceInterpols;
536
}
537
23628
template <> const options::produceInterpols__option_t::type& Options::operator[](
538
    options::produceInterpols__option_t) const
539
{
540
23628
  return smt().produceInterpols;
541
}
542
template <> bool Options::wasSetByUser(options::produceInterpols__option_t) const
543
{
544
  return smt().produceInterpols__setByUser__;
545
}
546
1566
template <> options::produceModels__option_t::type& Options::ref(
547
    options::produceModels__option_t)
548
{
549
1566
    return smt().produceModels;
550
}
551
61345
template <> const options::produceModels__option_t::type& Options::operator[](
552
    options::produceModels__option_t) const
553
{
554
61345
  return smt().produceModels;
555
}
556
51
template <> bool Options::wasSetByUser(options::produceModels__option_t) const
557
{
558
51
  return smt().produceModels__setByUser__;
559
}
560
4854
template <> options::produceProofs__option_t::type& Options::ref(
561
    options::produceProofs__option_t)
562
{
563
4854
    return smt().produceProofs;
564
}
565
30931007
template <> const options::produceProofs__option_t::type& Options::operator[](
566
    options::produceProofs__option_t) const
567
{
568
30931007
  return smt().produceProofs;
569
}
570
2420
template <> bool Options::wasSetByUser(options::produceProofs__option_t) const
571
{
572
2420
  return smt().produceProofs__setByUser__;
573
}
574
template <> options::unsatAssumptions__option_t::type& Options::ref(
575
    options::unsatAssumptions__option_t)
576
{
577
    return smt().unsatAssumptions;
578
}
579
8392
template <> const options::unsatAssumptions__option_t::type& Options::operator[](
580
    options::unsatAssumptions__option_t) const
581
{
582
8392
  return smt().unsatAssumptions;
583
}
584
template <> bool Options::wasSetByUser(options::unsatAssumptions__option_t) const
585
{
586
  return smt().unsatAssumptions__setByUser__;
587
}
588
3742
template <> options::unsatCores__option_t::type& Options::ref(
589
    options::unsatCores__option_t)
590
{
591
3742
    return smt().unsatCores;
592
}
593
11502668
template <> const options::unsatCores__option_t::type& Options::operator[](
594
    options::unsatCores__option_t) const
595
{
596
11502668
  return smt().unsatCores;
597
}
598
template <> bool Options::wasSetByUser(options::unsatCores__option_t) const
599
{
600
  return smt().unsatCores__setByUser__;
601
}
602
template <> options::regularChannelName__option_t::type& Options::ref(
603
    options::regularChannelName__option_t)
604
{
605
    return smt().regularChannelName;
606
}
607
template <> const options::regularChannelName__option_t::type& Options::operator[](
608
    options::regularChannelName__option_t) const
609
{
610
  return smt().regularChannelName;
611
}
612
10093
template <> bool Options::wasSetByUser(options::regularChannelName__option_t) const
613
{
614
10093
  return smt().regularChannelName__setByUser__;
615
}
616
9458
template <> options::repeatSimp__option_t::type& Options::ref(
617
    options::repeatSimp__option_t)
618
{
619
9458
    return smt().repeatSimp;
620
}
621
27379
template <> const options::repeatSimp__option_t::type& Options::operator[](
622
    options::repeatSimp__option_t) const
623
{
624
27379
  return smt().repeatSimp;
625
}
626
9460
template <> bool Options::wasSetByUser(options::repeatSimp__option_t) const
627
{
628
9460
  return smt().repeatSimp__setByUser__;
629
}
630
template <> options::compressItes__option_t::type& Options::ref(
631
    options::compressItes__option_t)
632
{
633
    return smt().compressItes;
634
}
635
2
template <> const options::compressItes__option_t::type& Options::operator[](
636
    options::compressItes__option_t) const
637
{
638
2
  return smt().compressItes;
639
}
640
template <> bool Options::wasSetByUser(options::compressItes__option_t) const
641
{
642
  return smt().compressItes__setByUser__;
643
}
644
template <> options::zombieHuntThreshold__option_t::type& Options::ref(
645
    options::zombieHuntThreshold__option_t)
646
{
647
    return smt().zombieHuntThreshold;
648
}
649
2
template <> const options::zombieHuntThreshold__option_t::type& Options::operator[](
650
    options::zombieHuntThreshold__option_t) const
651
{
652
2
  return smt().zombieHuntThreshold;
653
}
654
template <> bool Options::wasSetByUser(options::zombieHuntThreshold__option_t) const
655
{
656
  return smt().zombieHuntThreshold__setByUser__;
657
}
658
9460
template <> options::simplifyWithCareEnabled__option_t::type& Options::ref(
659
    options::simplifyWithCareEnabled__option_t)
660
{
661
9460
    return smt().simplifyWithCareEnabled;
662
}
663
2
template <> const options::simplifyWithCareEnabled__option_t::type& Options::operator[](
664
    options::simplifyWithCareEnabled__option_t) const
665
{
666
2
  return smt().simplifyWithCareEnabled;
667
}
668
9460
template <> bool Options::wasSetByUser(options::simplifyWithCareEnabled__option_t) const
669
{
670
9460
  return smt().simplifyWithCareEnabled__setByUser__;
671
}
672
8126
template <> options::simplificationMode__option_t::type& Options::ref(
673
    options::simplificationMode__option_t)
674
{
675
8126
    return smt().simplificationMode;
676
}
677
16015
template <> const options::simplificationMode__option_t::type& Options::operator[](
678
    options::simplificationMode__option_t) const
679
{
680
16015
  return smt().simplificationMode;
681
}
682
8152
template <> bool Options::wasSetByUser(options::simplificationMode__option_t) const
683
{
684
8152
  return smt().simplificationMode__setByUser__;
685
}
686
template <> options::solveBVAsInt__option_t::type& Options::ref(
687
    options::solveBVAsInt__option_t)
688
{
689
    return smt().solveBVAsInt;
690
}
691
31903
template <> const options::solveBVAsInt__option_t::type& Options::operator[](
692
    options::solveBVAsInt__option_t) const
693
{
694
31903
  return smt().solveBVAsInt;
695
}
696
template <> bool Options::wasSetByUser(options::solveBVAsInt__option_t) const
697
{
698
  return smt().solveBVAsInt__setByUser__;
699
}
700
template <> options::solveIntAsBV__option_t::type& Options::ref(
701
    options::solveIntAsBV__option_t)
702
{
703
    return smt().solveIntAsBV;
704
}
705
37247
template <> const options::solveIntAsBV__option_t::type& Options::operator[](
706
    options::solveIntAsBV__option_t) const
707
{
708
37247
  return smt().solveIntAsBV;
709
}
710
template <> bool Options::wasSetByUser(options::solveIntAsBV__option_t) const
711
{
712
  return smt().solveIntAsBV__setByUser__;
713
}
714
template <> options::solveRealAsInt__option_t::type& Options::ref(
715
    options::solveRealAsInt__option_t)
716
{
717
    return smt().solveRealAsInt;
718
}
719
27183
template <> const options::solveRealAsInt__option_t::type& Options::operator[](
720
    options::solveRealAsInt__option_t) const
721
{
722
27183
  return smt().solveRealAsInt;
723
}
724
template <> bool Options::wasSetByUser(options::solveRealAsInt__option_t) const
725
{
726
  return smt().solveRealAsInt__setByUser__;
727
}
728
2049
template <> options::sortInference__option_t::type& Options::ref(
729
    options::sortInference__option_t)
730
{
731
2049
    return smt().sortInference;
732
}
733
34139
template <> const options::sortInference__option_t::type& Options::operator[](
734
    options::sortInference__option_t) const
735
{
736
34139
  return smt().sortInference;
737
}
738
template <> bool Options::wasSetByUser(options::sortInference__option_t) const
739
{
740
  return smt().sortInference__setByUser__;
741
}
742
template <> options::doStaticLearning__option_t::type& Options::ref(
743
    options::doStaticLearning__option_t)
744
{
745
    return smt().doStaticLearning;
746
}
747
12885
template <> const options::doStaticLearning__option_t::type& Options::operator[](
748
    options::doStaticLearning__option_t) const
749
{
750
12885
  return smt().doStaticLearning;
751
}
752
template <> bool Options::wasSetByUser(options::doStaticLearning__option_t) const
753
{
754
  return smt().doStaticLearning__setByUser__;
755
}
756
template <> options::sygusOut__option_t::type& Options::ref(
757
    options::sygusOut__option_t)
758
{
759
    return smt().sygusOut;
760
}
761
693
template <> const options::sygusOut__option_t::type& Options::operator[](
762
    options::sygusOut__option_t) const
763
{
764
693
  return smt().sygusOut;
765
}
766
template <> bool Options::wasSetByUser(options::sygusOut__option_t) const
767
{
768
  return smt().sygusOut__setByUser__;
769
}
770
template <> options::sygusPrintCallbacks__option_t::type& Options::ref(
771
    options::sygusPrintCallbacks__option_t)
772
{
773
    return smt().sygusPrintCallbacks;
774
}
775
template <> const options::sygusPrintCallbacks__option_t::type& Options::operator[](
776
    options::sygusPrintCallbacks__option_t) const
777
{
778
  return smt().sygusPrintCallbacks;
779
}
780
template <> bool Options::wasSetByUser(options::sygusPrintCallbacks__option_t) const
781
{
782
  return smt().sygusPrintCallbacks__setByUser__;
783
}
784
5425
template <> options::unconstrainedSimp__option_t::type& Options::ref(
785
    options::unconstrainedSimp__option_t)
786
{
787
5425
    return smt().unconstrainedSimp;
788
}
789
29003
template <> const options::unconstrainedSimp__option_t::type& Options::operator[](
790
    options::unconstrainedSimp__option_t) const
791
{
792
29003
  return smt().unconstrainedSimp;
793
}
794
14991
template <> bool Options::wasSetByUser(options::unconstrainedSimp__option_t) const
795
{
796
14991
  return smt().unconstrainedSimp__setByUser__;
797
}
798
2301
template <> options::unsatCoresMode__option_t::type& Options::ref(
799
    options::unsatCoresMode__option_t)
800
{
801
2301
    return smt().unsatCoresMode;
802
}
803
1472526
template <> const options::unsatCoresMode__option_t::type& Options::operator[](
804
    options::unsatCoresMode__option_t) const
805
{
806
1472526
  return smt().unsatCoresMode;
807
}
808
2288
template <> bool Options::wasSetByUser(options::unsatCoresMode__option_t) const
809
{
810
2288
  return smt().unsatCoresMode__setByUser__;
811
}
812
813
namespace options {
814
815
thread_local struct abstractValues__option_t abstractValues;
816
thread_local struct ackermann__option_t ackermann;
817
thread_local struct blockModelsMode__option_t blockModelsMode;
818
thread_local struct BVAndIntegerGranularity__option_t BVAndIntegerGranularity;
819
thread_local struct checkAbducts__option_t checkAbducts;
820
thread_local struct checkInterpols__option_t checkInterpols;
821
thread_local struct checkModels__option_t checkModels;
822
thread_local struct checkProofs__option_t checkProofs;
823
thread_local struct checkSynthSol__option_t checkSynthSol;
824
thread_local struct checkUnsatCores__option_t checkUnsatCores;
825
thread_local struct debugCheckModels__option_t debugCheckModels;
826
thread_local struct diagnosticChannelName__option_t diagnosticChannelName;
827
thread_local struct dumpInstantiations__option_t dumpInstantiations;
828
thread_local struct dumpModels__option_t dumpModels;
829
thread_local struct dumpProofs__option_t dumpProofs;
830
thread_local struct dumpToFileName__option_t dumpToFileName;
831
thread_local struct dumpUnsatCores__option_t dumpUnsatCores;
832
thread_local struct dumpUnsatCoresFull__option_t dumpUnsatCoresFull;
833
thread_local struct dumpModeString__option_t dumpModeString;
834
thread_local struct earlyIteRemoval__option_t earlyIteRemoval;
835
thread_local struct expandDefinitions__option_t expandDefinitions;
836
thread_local struct extRewPrep__option_t extRewPrep;
837
thread_local struct extRewPrepAgg__option_t extRewPrepAgg;
838
thread_local struct forceNoLimitCpuWhileDump__option_t forceNoLimitCpuWhileDump;
839
thread_local struct foreignTheoryRewrite__option_t foreignTheoryRewrite;
840
thread_local struct iandMode__option_t iandMode;
841
thread_local struct incrementalSolving__option_t incrementalSolving;
842
thread_local struct interactiveMode__option_t interactiveMode;
843
thread_local struct doITESimp__option_t doITESimp;
844
thread_local struct modelCoresMode__option_t modelCoresMode;
845
thread_local struct modelUninterpPrint__option_t modelUninterpPrint;
846
thread_local struct modelWitnessValue__option_t modelWitnessValue;
847
thread_local struct doITESimpOnRepeat__option_t doITESimpOnRepeat;
848
thread_local struct produceAbducts__option_t produceAbducts;
849
thread_local struct produceAssertions__option_t produceAssertions;
850
thread_local struct produceAssignments__option_t produceAssignments;
851
thread_local struct produceInterpols__option_t produceInterpols;
852
thread_local struct produceModels__option_t produceModels;
853
thread_local struct produceProofs__option_t produceProofs;
854
thread_local struct unsatAssumptions__option_t unsatAssumptions;
855
thread_local struct unsatCores__option_t unsatCores;
856
thread_local struct regularChannelName__option_t regularChannelName;
857
thread_local struct repeatSimp__option_t repeatSimp;
858
thread_local struct compressItes__option_t compressItes;
859
thread_local struct zombieHuntThreshold__option_t zombieHuntThreshold;
860
thread_local struct simplifyWithCareEnabled__option_t simplifyWithCareEnabled;
861
thread_local struct simplificationMode__option_t simplificationMode;
862
thread_local struct solveBVAsInt__option_t solveBVAsInt;
863
thread_local struct solveIntAsBV__option_t solveIntAsBV;
864
thread_local struct solveRealAsInt__option_t solveRealAsInt;
865
thread_local struct sortInference__option_t sortInference;
866
thread_local struct doStaticLearning__option_t doStaticLearning;
867
thread_local struct sygusOut__option_t sygusOut;
868
thread_local struct sygusPrintCallbacks__option_t sygusPrintCallbacks;
869
thread_local struct unconstrainedSimp__option_t unconstrainedSimp;
870
thread_local struct unsatCoresMode__option_t unsatCoresMode;
871
872
873
std::ostream& operator<<(std::ostream& os, BlockModelsMode mode)
874
{
875
  switch(mode) {
876
    case BlockModelsMode::NONE:
877
      return os << "BlockModelsMode::NONE";
878
    case BlockModelsMode::LITERALS:
879
      return os << "BlockModelsMode::LITERALS";
880
    case BlockModelsMode::VALUES:
881
      return os << "BlockModelsMode::VALUES";
882
    default:
883
      Unreachable();
884
  }
885
  return os;
886
}
887
888
21
BlockModelsMode stringToBlockModelsMode(const std::string& optarg)
889
{
890
21
  if (optarg == "none")
891
  {
892
    return BlockModelsMode::NONE;
893
  }
894
21
  else if (optarg == "literals")
895
  {
896
18
    return BlockModelsMode::LITERALS;
897
  }
898
3
  else if (optarg == "values")
899
  {
900
3
    return BlockModelsMode::VALUES;
901
  }
902
  else if (optarg == "help")
903
  {
904
    std::cerr << "Blocking models modes.\n"
905
         "Available modes for --block-models are:\n"
906
         "+ none (default)\n"
907
         "  Do not block models.\n"
908
         "+ literals\n"
909
         "  Block models based on the SAT skeleton.\n"
910
         "+ values\n"
911
         "  Block models based on the concrete model values for the free variables.\n";
912
    std::exit(1);
913
  }
914
  throw OptionException(std::string("unknown option for --block-models: `") +
915
                        optarg + "'.  Try --block-models=help.");
916
}
917
918
std::ostream& operator<<(std::ostream& os, IandMode mode)
919
{
920
  switch(mode) {
921
    case IandMode::BITWISE:
922
      return os << "IandMode::BITWISE";
923
    case IandMode::SUM:
924
      return os << "IandMode::SUM";
925
    case IandMode::VALUE:
926
      return os << "IandMode::VALUE";
927
    default:
928
      Unreachable();
929
  }
930
  return os;
931
}
932
933
68
IandMode stringToIandMode(const std::string& optarg)
934
{
935
68
  if (optarg == "bitwise")
936
  {
937
30
    return IandMode::BITWISE;
938
  }
939
38
  else if (optarg == "sum")
940
  {
941
19
    return IandMode::SUM;
942
  }
943
19
  else if (optarg == "value")
944
  {
945
19
    return IandMode::VALUE;
946
  }
947
  else if (optarg == "help")
948
  {
949
    std::cerr << "Refinement modes for integer AND\n"
950
         "Available modes for --iand-mode are:\n"
951
         "+ bitwise\n"
952
         "  use bitwise comparisons on binary representation of integer for refinement\n"
953
         "  (experimental)\n"
954
         "+ sum\n"
955
         "  use sum to represent integer AND in refinement\n"
956
         "+ value (default)\n"
957
         "  value-based refinement\n";
958
    std::exit(1);
959
  }
960
  throw OptionException(std::string("unknown option for --iand-mode: `") +
961
                        optarg + "'.  Try --iand-mode=help.");
962
}
963
964
std::ostream& operator<<(std::ostream& os, ModelCoresMode mode)
965
{
966
  switch(mode) {
967
    case ModelCoresMode::NONE:
968
      return os << "ModelCoresMode::NONE";
969
    case ModelCoresMode::NON_IMPLIED:
970
      return os << "ModelCoresMode::NON_IMPLIED";
971
    case ModelCoresMode::SIMPLE:
972
      return os << "ModelCoresMode::SIMPLE";
973
    default:
974
      Unreachable();
975
  }
976
  return os;
977
}
978
979
6
ModelCoresMode stringToModelCoresMode(const std::string& optarg)
980
{
981
6
  if (optarg == "none")
982
  {
983
    return ModelCoresMode::NONE;
984
  }
985
6
  else if (optarg == "non-implied")
986
  {
987
4
    return ModelCoresMode::NON_IMPLIED;
988
  }
989
2
  else if (optarg == "simple")
990
  {
991
2
    return ModelCoresMode::SIMPLE;
992
  }
993
  else if (optarg == "help")
994
  {
995
    std::cerr << "Model cores modes.\n"
996
         "Available modes for --model-cores are:\n"
997
         "+ none (default)\n"
998
         "  Do not compute model cores.\n"
999
         "+ non-implied\n"
1000
         "  Only include a subset of variables whose values, in addition to the values of\n"
1001
         "  variables whose values are implied, are sufficient to show the input formula\n"
1002
         "  is satisfied by the given model.\n"
1003
         "+ simple\n"
1004
         "  Only include a subset of variables whose values are sufficient to show the\n"
1005
         "  input formula is satisfied by the given model.\n";
1006
    std::exit(1);
1007
  }
1008
  throw OptionException(std::string("unknown option for --model-cores: `") +
1009
                        optarg + "'.  Try --model-cores=help.");
1010
}
1011
1012
std::ostream& operator<<(std::ostream& os, ModelUninterpPrintMode mode)
1013
{
1014
  switch(mode) {
1015
    case ModelUninterpPrintMode::DeclFun:
1016
      return os << "ModelUninterpPrintMode::DeclFun";
1017
    case ModelUninterpPrintMode::DtEnum:
1018
      return os << "ModelUninterpPrintMode::DtEnum";
1019
    case ModelUninterpPrintMode::None:
1020
      return os << "ModelUninterpPrintMode::None";
1021
    case ModelUninterpPrintMode::DeclSortAndFun:
1022
      return os << "ModelUninterpPrintMode::DeclSortAndFun";
1023
    default:
1024
      Unreachable();
1025
  }
1026
  return os;
1027
}
1028
1029
1
ModelUninterpPrintMode stringToModelUninterpPrintMode(const std::string& optarg)
1030
{
1031
1
  if (optarg == "decl-fun")
1032
  {
1033
1
    return ModelUninterpPrintMode::DeclFun;
1034
  }
1035
  else if (optarg == "dtenum")
1036
  {
1037
    return ModelUninterpPrintMode::DtEnum;
1038
  }
1039
  else if (optarg == "none")
1040
  {
1041
    return ModelUninterpPrintMode::None;
1042
  }
1043
  else if (optarg == "decl-sort-and-fun")
1044
  {
1045
    return ModelUninterpPrintMode::DeclSortAndFun;
1046
  }
1047
  else if (optarg == "help")
1048
  {
1049
    std::cerr << "uninterpreted elements in models printing  modes.\n"
1050
         "Available modes for --model-u-print are:\n"
1051
         "+ decl-fun\n"
1052
         "  print uninterpreted elements declare-fun, but don't include a declare-sort for\n"
1053
         "  the sort\n"
1054
         "+ dtenum\n"
1055
         "  print uninterpreted elements as datatype enumerations, where the sort is the\n"
1056
         "  datatype\n"
1057
         "+ none (default)\n"
1058
         "  (default) do not print declarations of uninterpreted elements in models.\n"
1059
         "+ decl-sort-and-fun\n"
1060
         "  print uninterpreted elements declare-fun, and also include a declare-sort for\n"
1061
         "  the sort\n";
1062
    std::exit(1);
1063
  }
1064
  throw OptionException(std::string("unknown option for --model-u-print: `") +
1065
                        optarg + "'.  Try --model-u-print=help.");
1066
}
1067
1068
std::ostream& operator<<(std::ostream& os, ProduceInterpols mode)
1069
{
1070
  switch(mode) {
1071
    case ProduceInterpols::NONE:
1072
      return os << "ProduceInterpols::NONE";
1073
    case ProduceInterpols::CONJECTURE:
1074
      return os << "ProduceInterpols::CONJECTURE";
1075
    case ProduceInterpols::DEFAULT:
1076
      return os << "ProduceInterpols::DEFAULT";
1077
    case ProduceInterpols::ASSUMPTIONS:
1078
      return os << "ProduceInterpols::ASSUMPTIONS";
1079
    case ProduceInterpols::ALL:
1080
      return os << "ProduceInterpols::ALL";
1081
    case ProduceInterpols::SHARED:
1082
      return os << "ProduceInterpols::SHARED";
1083
    default:
1084
      Unreachable();
1085
  }
1086
  return os;
1087
}
1088
1089
11
ProduceInterpols stringToProduceInterpols(const std::string& optarg)
1090
{
1091
11
  if (optarg == "none")
1092
  {
1093
    return ProduceInterpols::NONE;
1094
  }
1095
11
  else if (optarg == "conjecture")
1096
  {
1097
2
    return ProduceInterpols::CONJECTURE;
1098
  }
1099
9
  else if (optarg == "default")
1100
  {
1101
9
    return ProduceInterpols::DEFAULT;
1102
  }
1103
  else if (optarg == "assumptions")
1104
  {
1105
    return ProduceInterpols::ASSUMPTIONS;
1106
  }
1107
  else if (optarg == "all")
1108
  {
1109
    return ProduceInterpols::ALL;
1110
  }
1111
  else if (optarg == "shared")
1112
  {
1113
    return ProduceInterpols::SHARED;
1114
  }
1115
  else if (optarg == "help")
1116
  {
1117
    std::cerr << "Interpolants grammar mode\n"
1118
         "Available modes for --produce-interpols are:\n"
1119
         "+ none (default)\n"
1120
         "  don't compute interpolants\n"
1121
         "+ conjecture\n"
1122
         "  use only operators that occur in the conjecture\n"
1123
         "+ default\n"
1124
         "  use the default grammar for the theory or the user-defined grammar if given\n"
1125
         "+ assumptions\n"
1126
         "  use only operators that occur in the assumptions\n"
1127
         "+ all\n"
1128
         "  use only operators that occur either in the assumptions or the conjecture\n"
1129
         "+ shared\n"
1130
         "  use only operators that occur both in the assumptions and the conjecture\n";
1131
    std::exit(1);
1132
  }
1133
  throw OptionException(std::string("unknown option for --produce-interpols: `") +
1134
                        optarg + "'.  Try --produce-interpols=help.");
1135
}
1136
1137
1
std::ostream& operator<<(std::ostream& os, SimplificationMode mode)
1138
{
1139
1
  switch(mode) {
1140
1
    case SimplificationMode::NONE:
1141
1
      return os << "SimplificationMode::NONE";
1142
    case SimplificationMode::BATCH:
1143
      return os << "SimplificationMode::BATCH";
1144
    default:
1145
      Unreachable();
1146
  }
1147
  return os;
1148
}
1149
1150
32
SimplificationMode stringToSimplificationMode(const std::string& optarg)
1151
{
1152
32
  if (optarg == "none")
1153
  {
1154
32
    return SimplificationMode::NONE;
1155
  }
1156
  else if (optarg == "batch")
1157
  {
1158
    return SimplificationMode::BATCH;
1159
  }
1160
  else if (optarg == "help")
1161
  {
1162
    std::cerr << "Simplification modes.\n"
1163
         "Available modes for --simplification are:\n"
1164
         "+ none\n"
1165
         "  Do not perform nonclausal simplification.\n"
1166
         "+ batch (default)\n"
1167
         "  Save up all ASSERTions; run nonclausal simplification and clausal (MiniSat)\n"
1168
         "  propagation for all of them only after reaching a querying command (CHECKSAT\n"
1169
         "  or QUERY or predicate SUBTYPE declaration).\n";
1170
    std::exit(1);
1171
  }
1172
  throw OptionException(std::string("unknown option for --simplification: `") +
1173
                        optarg + "'.  Try --simplification=help.");
1174
}
1175
1176
std::ostream& operator<<(std::ostream& os, SolveBVAsIntMode mode)
1177
{
1178
  switch(mode) {
1179
    case SolveBVAsIntMode::IAND:
1180
      return os << "SolveBVAsIntMode::IAND";
1181
    case SolveBVAsIntMode::SUM:
1182
      return os << "SolveBVAsIntMode::SUM";
1183
    case SolveBVAsIntMode::BV:
1184
      return os << "SolveBVAsIntMode::BV";
1185
    case SolveBVAsIntMode::OFF:
1186
      return os << "SolveBVAsIntMode::OFF";
1187
    default:
1188
      Unreachable();
1189
  }
1190
  return os;
1191
}
1192
1193
133
SolveBVAsIntMode stringToSolveBVAsIntMode(const std::string& optarg)
1194
{
1195
133
  if (optarg == "iand")
1196
  {
1197
33
    return SolveBVAsIntMode::IAND;
1198
  }
1199
100
  else if (optarg == "sum")
1200
  {
1201
78
    return SolveBVAsIntMode::SUM;
1202
  }
1203
22
  else if (optarg == "bv")
1204
  {
1205
22
    return SolveBVAsIntMode::BV;
1206
  }
1207
  else if (optarg == "off")
1208
  {
1209
    return SolveBVAsIntMode::OFF;
1210
  }
1211
  else if (optarg == "help")
1212
  {
1213
    std::cerr << "solve-bv-as-int modes.\n"
1214
         "Available modes for --solve-bv-as-int are:\n"
1215
         "+ iand\n"
1216
         "  Translate bvand to the iand operator (experimental)\n"
1217
         "+ sum\n"
1218
         "  Generate a sum expression for each bvand instance, based on the value in\n"
1219
         "  --solbv-bv-as-int-granularity\n"
1220
         "+ bv\n"
1221
         "  Translate bvand back to bit-vectors\n"
1222
         "+ off (default)\n"
1223
         "  Do not translate bit-vectors to integers\n";
1224
    std::exit(1);
1225
  }
1226
  throw OptionException(std::string("unknown option for --solve-bv-as-int: `") +
1227
                        optarg + "'.  Try --solve-bv-as-int=help.");
1228
}
1229
1230
std::ostream& operator<<(std::ostream& os, SygusSolutionOutMode mode)
1231
{
1232
  switch(mode) {
1233
    case SygusSolutionOutMode::STATUS_OR_DEF:
1234
      return os << "SygusSolutionOutMode::STATUS_OR_DEF";
1235
    case SygusSolutionOutMode::STATUS_AND_DEF:
1236
      return os << "SygusSolutionOutMode::STATUS_AND_DEF";
1237
    case SygusSolutionOutMode::STANDARD:
1238
      return os << "SygusSolutionOutMode::STANDARD";
1239
    case SygusSolutionOutMode::STATUS:
1240
      return os << "SygusSolutionOutMode::STATUS";
1241
    default:
1242
      Unreachable();
1243
  }
1244
  return os;
1245
}
1246
1247
179
SygusSolutionOutMode stringToSygusSolutionOutMode(const std::string& optarg)
1248
{
1249
179
  if (optarg == "status-or-def")
1250
  {
1251
    return SygusSolutionOutMode::STATUS_OR_DEF;
1252
  }
1253
179
  else if (optarg == "status-and-def")
1254
  {
1255
    return SygusSolutionOutMode::STATUS_AND_DEF;
1256
  }
1257
179
  else if (optarg == "sygus-standard")
1258
  {
1259
    return SygusSolutionOutMode::STANDARD;
1260
  }
1261
179
  else if (optarg == "status")
1262
  {
1263
179
    return SygusSolutionOutMode::STATUS;
1264
  }
1265
  else if (optarg == "help")
1266
  {
1267
    std::cerr << "Modes for sygus solution output.\n"
1268
         "Available modes for --sygus-out are:\n"
1269
         "+ status-or-def\n"
1270
         "  Print status if infeasible, or definition corresponding to solution if\n"
1271
         "  feasible.\n"
1272
         "+ status-and-def\n"
1273
         "  Print status followed by definition corresponding to solution.\n"
1274
         "+ sygus-standard (default)\n"
1275
         "  Print based on SyGuS standard.\n"
1276
         "+ status\n"
1277
         "  Print only status for check-synth calls.\n";
1278
    std::exit(1);
1279
  }
1280
  throw OptionException(std::string("unknown option for --sygus-out: `") +
1281
                        optarg + "'.  Try --sygus-out=help.");
1282
}
1283
1284
std::ostream& operator<<(std::ostream& os, UnsatCoresMode mode)
1285
{
1286
  switch(mode) {
1287
    case UnsatCoresMode::ASSUMPTIONS:
1288
      return os << "UnsatCoresMode::ASSUMPTIONS";
1289
    case UnsatCoresMode::SAT_PROOF:
1290
      return os << "UnsatCoresMode::SAT_PROOF";
1291
    case UnsatCoresMode::FULL_PROOF:
1292
      return os << "UnsatCoresMode::FULL_PROOF";
1293
    case UnsatCoresMode::OFF:
1294
      return os << "UnsatCoresMode::OFF";
1295
    default:
1296
      Unreachable();
1297
  }
1298
  return os;
1299
}
1300
1301
UnsatCoresMode stringToUnsatCoresMode(const std::string& optarg)
1302
{
1303
  if (optarg == "assumptions")
1304
  {
1305
    return UnsatCoresMode::ASSUMPTIONS;
1306
  }
1307
  else if (optarg == "sat-proof")
1308
  {
1309
    return UnsatCoresMode::SAT_PROOF;
1310
  }
1311
  else if (optarg == "full-proof")
1312
  {
1313
    return UnsatCoresMode::FULL_PROOF;
1314
  }
1315
  else if (optarg == "off")
1316
  {
1317
    return UnsatCoresMode::OFF;
1318
  }
1319
  else if (optarg == "help")
1320
  {
1321
    std::cerr << "unsat cores modes.\n"
1322
         "Available modes for --unsat-cores-mode are:\n"
1323
         "+ assumptions\n"
1324
         "  Produce unsat cores using solving under assumptions and preprocessing proofs.\n"
1325
         "+ sat-proof\n"
1326
         "  Produce unsat cores from SAT and preprocessing proofs.\n"
1327
         "+ full-proof\n"
1328
         "  Produce unsat cores from full proofs.\n"
1329
         "+ off (default)\n"
1330
         "  Do not produce unsat cores.\n";
1331
    std::exit(1);
1332
  }
1333
  throw OptionException(std::string("unknown option for --unsat-cores-mode: `") +
1334
                        optarg + "'.  Try --unsat-cores-mode=help.");
1335
}
1336
1337
1338
}  // namespace options
1339
28194
}  // namespace cvc5
1340
// clang-format on