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 |
|
* Contains code for handling command-line options. |
14 |
|
* |
15 |
|
* For each <module>_options.toml configuration file, mkoptions.py |
16 |
|
* expands this template and generates a <module>_options.h file. |
17 |
|
*/ |
18 |
|
|
19 |
|
#include "cvc5_private.h" |
20 |
|
|
21 |
|
#ifndef CVC5__OPTIONS__SMT_H |
22 |
|
#define CVC5__OPTIONS__SMT_H |
23 |
|
|
24 |
|
#include "options/options.h" |
25 |
|
|
26 |
|
// clang-format off |
27 |
|
#include "options/managed_streams.h" |
28 |
|
#include <iostream> |
29 |
|
// clang-format on |
30 |
|
|
31 |
|
namespace cvc5 { |
32 |
|
namespace options { |
33 |
|
|
34 |
|
// clang-format off |
35 |
|
|
36 |
|
enum class BlockModelsMode |
37 |
|
{ |
38 |
|
VALUES, |
39 |
|
NONE, |
40 |
|
LITERALS |
41 |
|
}; |
42 |
|
|
43 |
|
static constexpr size_t BlockModelsMode__numValues = 3; |
44 |
|
|
45 |
|
std::ostream& operator<<(std::ostream& os, BlockModelsMode mode); |
46 |
|
BlockModelsMode stringToBlockModelsMode(const std::string& optarg); |
47 |
|
enum class IandMode |
48 |
|
{ |
49 |
|
BITWISE, |
50 |
|
SUM, |
51 |
|
VALUE |
52 |
|
}; |
53 |
|
|
54 |
|
static constexpr size_t IandMode__numValues = 3; |
55 |
|
|
56 |
|
std::ostream& operator<<(std::ostream& os, IandMode mode); |
57 |
|
IandMode stringToIandMode(const std::string& optarg); |
58 |
|
enum class ModelCoresMode |
59 |
|
{ |
60 |
|
NONE, |
61 |
|
NON_IMPLIED, |
62 |
|
SIMPLE |
63 |
|
}; |
64 |
|
|
65 |
|
static constexpr size_t ModelCoresMode__numValues = 3; |
66 |
|
|
67 |
|
std::ostream& operator<<(std::ostream& os, ModelCoresMode mode); |
68 |
|
ModelCoresMode stringToModelCoresMode(const std::string& optarg); |
69 |
|
enum class ModelUninterpPrintMode |
70 |
|
{ |
71 |
|
None, |
72 |
|
DeclFun, |
73 |
|
DtEnum, |
74 |
|
DeclSortAndFun |
75 |
|
}; |
76 |
|
|
77 |
|
static constexpr size_t ModelUninterpPrintMode__numValues = 4; |
78 |
|
|
79 |
|
std::ostream& operator<<(std::ostream& os, ModelUninterpPrintMode mode); |
80 |
|
ModelUninterpPrintMode stringToModelUninterpPrintMode(const std::string& optarg); |
81 |
|
enum class ProduceInterpols |
82 |
|
{ |
83 |
|
DEFAULT, |
84 |
|
CONJECTURE, |
85 |
|
NONE, |
86 |
|
ASSUMPTIONS, |
87 |
|
ALL, |
88 |
|
SHARED |
89 |
|
}; |
90 |
|
|
91 |
|
static constexpr size_t ProduceInterpols__numValues = 6; |
92 |
|
|
93 |
|
std::ostream& operator<<(std::ostream& os, ProduceInterpols mode); |
94 |
|
ProduceInterpols stringToProduceInterpols(const std::string& optarg); |
95 |
|
enum class SimplificationMode |
96 |
|
{ |
97 |
|
NONE, |
98 |
|
BATCH |
99 |
|
}; |
100 |
|
|
101 |
|
static constexpr size_t SimplificationMode__numValues = 2; |
102 |
|
|
103 |
|
std::ostream& operator<<(std::ostream& os, SimplificationMode mode); |
104 |
|
SimplificationMode stringToSimplificationMode(const std::string& optarg); |
105 |
|
enum class SolveBVAsIntMode |
106 |
|
{ |
107 |
|
IAND, |
108 |
|
SUM, |
109 |
|
OFF, |
110 |
|
BV |
111 |
|
}; |
112 |
|
|
113 |
|
static constexpr size_t SolveBVAsIntMode__numValues = 4; |
114 |
|
|
115 |
|
std::ostream& operator<<(std::ostream& os, SolveBVAsIntMode mode); |
116 |
|
SolveBVAsIntMode stringToSolveBVAsIntMode(const std::string& optarg); |
117 |
|
enum class SygusSolutionOutMode |
118 |
|
{ |
119 |
|
STATUS_OR_DEF, |
120 |
|
STATUS_AND_DEF, |
121 |
|
STANDARD, |
122 |
|
STATUS |
123 |
|
}; |
124 |
|
|
125 |
|
static constexpr size_t SygusSolutionOutMode__numValues = 4; |
126 |
|
|
127 |
|
std::ostream& operator<<(std::ostream& os, SygusSolutionOutMode mode); |
128 |
|
SygusSolutionOutMode stringToSygusSolutionOutMode(const std::string& optarg); |
129 |
|
enum class UnsatCoresMode |
130 |
|
{ |
131 |
|
SAT_PROOF, |
132 |
|
FULL_PROOF, |
133 |
|
OFF, |
134 |
|
ASSUMPTIONS |
135 |
|
}; |
136 |
|
|
137 |
|
static constexpr size_t UnsatCoresMode__numValues = 4; |
138 |
|
|
139 |
|
std::ostream& operator<<(std::ostream& os, UnsatCoresMode mode); |
140 |
|
UnsatCoresMode stringToUnsatCoresMode(const std::string& optarg); |
141 |
|
// clang-format on |
142 |
|
|
143 |
|
#if defined(CVC5_MUZZLED) || defined(CVC5_COMPETITION_MODE) |
144 |
|
# define DO_SEMANTIC_CHECKS_BY_DEFAULT false |
145 |
|
#else /* CVC5_MUZZLED || CVC5_COMPETITION_MODE */ |
146 |
|
# define DO_SEMANTIC_CHECKS_BY_DEFAULT true |
147 |
|
#endif /* CVC5_MUZZLED || CVC5_COMPETITION_MODE */ |
148 |
|
|
149 |
69180 |
struct HolderSMT |
150 |
|
{ |
151 |
|
// clang-format off |
152 |
|
bool abstractValues = false; |
153 |
|
bool abstractValuesWasSetByUser = false; |
154 |
|
bool ackermann = false; |
155 |
|
bool ackermannWasSetByUser = false; |
156 |
|
BlockModelsMode blockModelsMode = BlockModelsMode::NONE; |
157 |
|
bool blockModelsModeWasSetByUser = false; |
158 |
|
uint64_t BVAndIntegerGranularity = 1; |
159 |
|
bool BVAndIntegerGranularityWasSetByUser = false; |
160 |
|
bool checkAbducts = false; |
161 |
|
bool checkAbductsWasSetByUser = false; |
162 |
|
bool checkInterpols = false; |
163 |
|
bool checkInterpolsWasSetByUser = false; |
164 |
|
bool checkModels; |
165 |
|
bool checkModelsWasSetByUser = false; |
166 |
|
bool checkProofs; |
167 |
|
bool checkProofsWasSetByUser = false; |
168 |
|
bool checkSynthSol = false; |
169 |
|
bool checkSynthSolWasSetByUser = false; |
170 |
|
bool checkUnsatCores; |
171 |
|
bool checkUnsatCoresWasSetByUser = false; |
172 |
|
bool debugCheckModels; |
173 |
|
bool debugCheckModelsWasSetByUser = false; |
174 |
|
ManagedOut dumpToFileName; |
175 |
|
bool dumpToFileNameWasSetByUser = false; |
176 |
|
std::string dumpModeString; |
177 |
|
bool dumpModeStringWasSetByUser = false; |
178 |
|
bool earlyIteRemoval = false; |
179 |
|
bool earlyIteRemovalWasSetByUser = false; |
180 |
|
bool expandDefinitions = false; |
181 |
|
bool expandDefinitionsWasSetByUser = false; |
182 |
|
bool extRewPrep = false; |
183 |
|
bool extRewPrepWasSetByUser = false; |
184 |
|
bool extRewPrepAgg = false; |
185 |
|
bool extRewPrepAggWasSetByUser = false; |
186 |
|
bool foreignTheoryRewrite = false; |
187 |
|
bool foreignTheoryRewriteWasSetByUser = false; |
188 |
|
IandMode iandMode = IandMode::VALUE; |
189 |
|
bool iandModeWasSetByUser = false; |
190 |
|
bool interactiveMode; |
191 |
|
bool interactiveModeWasSetByUser = false; |
192 |
|
bool doITESimp; |
193 |
|
bool doITESimpWasSetByUser = false; |
194 |
|
bool learnedRewrite = false; |
195 |
|
bool learnedRewriteWasSetByUser = false; |
196 |
|
bool minimalUnsatCores = false; |
197 |
|
bool minimalUnsatCoresWasSetByUser = false; |
198 |
|
ModelCoresMode modelCoresMode = ModelCoresMode::NONE; |
199 |
|
bool modelCoresModeWasSetByUser = false; |
200 |
|
ModelUninterpPrintMode modelUninterpPrint = ModelUninterpPrintMode::None; |
201 |
|
bool modelUninterpPrintWasSetByUser = false; |
202 |
|
bool modelWitnessValue = false; |
203 |
|
bool modelWitnessValueWasSetByUser = false; |
204 |
|
bool doITESimpOnRepeat = false; |
205 |
|
bool doITESimpOnRepeatWasSetByUser = false; |
206 |
|
bool produceAbducts = false; |
207 |
|
bool produceAbductsWasSetByUser = false; |
208 |
|
bool produceAssertions; |
209 |
|
bool produceAssertionsWasSetByUser = false; |
210 |
|
bool produceAssignments = false; |
211 |
|
bool produceAssignmentsWasSetByUser = false; |
212 |
|
ProduceInterpols produceInterpols = ProduceInterpols::NONE; |
213 |
|
bool produceInterpolsWasSetByUser = false; |
214 |
|
bool produceModels = false; |
215 |
|
bool produceModelsWasSetByUser = false; |
216 |
|
bool produceProofs = false; |
217 |
|
bool produceProofsWasSetByUser = false; |
218 |
|
bool unsatAssumptions = false; |
219 |
|
bool unsatAssumptionsWasSetByUser = false; |
220 |
|
bool unsatCores; |
221 |
|
bool unsatCoresWasSetByUser = false; |
222 |
|
bool repeatSimp; |
223 |
|
bool repeatSimpWasSetByUser = false; |
224 |
|
bool compressItes = false; |
225 |
|
bool compressItesWasSetByUser = false; |
226 |
|
uint64_t zombieHuntThreshold = 524288; |
227 |
|
bool zombieHuntThresholdWasSetByUser = false; |
228 |
|
bool simplifyWithCareEnabled = false; |
229 |
|
bool simplifyWithCareEnabledWasSetByUser = false; |
230 |
|
SimplificationMode simplificationMode = SimplificationMode::BATCH; |
231 |
|
bool simplificationModeWasSetByUser = false; |
232 |
|
SolveBVAsIntMode solveBVAsInt = SolveBVAsIntMode::OFF; |
233 |
|
bool solveBVAsIntWasSetByUser = false; |
234 |
|
uint64_t solveIntAsBV = 0; |
235 |
|
bool solveIntAsBVWasSetByUser = false; |
236 |
|
bool solveRealAsInt = false; |
237 |
|
bool solveRealAsIntWasSetByUser = false; |
238 |
|
bool sortInference = false; |
239 |
|
bool sortInferenceWasSetByUser = false; |
240 |
|
bool doStaticLearning = true; |
241 |
|
bool doStaticLearningWasSetByUser = false; |
242 |
|
SygusSolutionOutMode sygusOut = SygusSolutionOutMode::STANDARD; |
243 |
|
bool sygusOutWasSetByUser = false; |
244 |
|
bool sygusPrintCallbacks = true; |
245 |
|
bool sygusPrintCallbacksWasSetByUser = false; |
246 |
|
bool unconstrainedSimp = false; |
247 |
|
bool unconstrainedSimpWasSetByUser = false; |
248 |
|
UnsatCoresMode unsatCoresMode = UnsatCoresMode::OFF; |
249 |
|
bool unsatCoresModeWasSetByUser = false; |
250 |
|
// clang-format on |
251 |
|
}; |
252 |
|
|
253 |
|
#undef DO_SEMANTIC_CHECKS_BY_DEFAULT |
254 |
|
|
255 |
|
// clang-format off |
256 |
|
extern struct abstractValues__option_t |
257 |
|
{ |
258 |
|
typedef bool type; |
259 |
|
type operator()() const; |
260 |
|
} thread_local abstractValues; |
261 |
|
extern struct ackermann__option_t |
262 |
|
{ |
263 |
|
typedef bool type; |
264 |
|
type operator()() const; |
265 |
|
} thread_local ackermann; |
266 |
|
extern struct blockModelsMode__option_t |
267 |
|
{ |
268 |
|
typedef BlockModelsMode type; |
269 |
|
type operator()() const; |
270 |
|
} thread_local blockModelsMode; |
271 |
|
extern struct BVAndIntegerGranularity__option_t |
272 |
|
{ |
273 |
|
typedef uint64_t type; |
274 |
|
type operator()() const; |
275 |
|
} thread_local BVAndIntegerGranularity; |
276 |
|
extern struct checkAbducts__option_t |
277 |
|
{ |
278 |
|
typedef bool type; |
279 |
|
type operator()() const; |
280 |
|
} thread_local checkAbducts; |
281 |
|
extern struct checkInterpols__option_t |
282 |
|
{ |
283 |
|
typedef bool type; |
284 |
|
type operator()() const; |
285 |
|
} thread_local checkInterpols; |
286 |
|
extern struct checkModels__option_t |
287 |
|
{ |
288 |
|
typedef bool type; |
289 |
|
type operator()() const; |
290 |
|
} thread_local checkModels; |
291 |
|
extern struct checkProofs__option_t |
292 |
|
{ |
293 |
|
typedef bool type; |
294 |
|
type operator()() const; |
295 |
|
} thread_local checkProofs; |
296 |
|
extern struct checkSynthSol__option_t |
297 |
|
{ |
298 |
|
typedef bool type; |
299 |
|
type operator()() const; |
300 |
|
} thread_local checkSynthSol; |
301 |
|
extern struct checkUnsatCores__option_t |
302 |
|
{ |
303 |
|
typedef bool type; |
304 |
|
type operator()() const; |
305 |
|
} thread_local checkUnsatCores; |
306 |
|
extern struct debugCheckModels__option_t |
307 |
|
{ |
308 |
|
typedef bool type; |
309 |
|
type operator()() const; |
310 |
|
} thread_local debugCheckModels; |
311 |
|
extern struct dumpToFileName__option_t |
312 |
|
{ |
313 |
|
typedef ManagedOut type; |
314 |
|
type operator()() const; |
315 |
|
} thread_local dumpToFileName; |
316 |
|
extern struct dumpModeString__option_t |
317 |
|
{ |
318 |
|
typedef std::string type; |
319 |
|
type operator()() const; |
320 |
|
} thread_local dumpModeString; |
321 |
|
extern struct earlyIteRemoval__option_t |
322 |
|
{ |
323 |
|
typedef bool type; |
324 |
|
type operator()() const; |
325 |
|
} thread_local earlyIteRemoval; |
326 |
|
extern struct expandDefinitions__option_t |
327 |
|
{ |
328 |
|
typedef bool type; |
329 |
|
type operator()() const; |
330 |
|
} thread_local expandDefinitions; |
331 |
|
extern struct extRewPrep__option_t |
332 |
|
{ |
333 |
|
typedef bool type; |
334 |
|
type operator()() const; |
335 |
|
} thread_local extRewPrep; |
336 |
|
extern struct extRewPrepAgg__option_t |
337 |
|
{ |
338 |
|
typedef bool type; |
339 |
|
type operator()() const; |
340 |
|
} thread_local extRewPrepAgg; |
341 |
|
extern struct foreignTheoryRewrite__option_t |
342 |
|
{ |
343 |
|
typedef bool type; |
344 |
|
type operator()() const; |
345 |
|
} thread_local foreignTheoryRewrite; |
346 |
|
extern struct iandMode__option_t |
347 |
|
{ |
348 |
|
typedef IandMode type; |
349 |
|
type operator()() const; |
350 |
|
} thread_local iandMode; |
351 |
|
extern struct interactiveMode__option_t |
352 |
|
{ |
353 |
|
typedef bool type; |
354 |
|
type operator()() const; |
355 |
|
} thread_local interactiveMode; |
356 |
|
extern struct doITESimp__option_t |
357 |
|
{ |
358 |
|
typedef bool type; |
359 |
|
type operator()() const; |
360 |
|
} thread_local doITESimp; |
361 |
|
extern struct learnedRewrite__option_t |
362 |
|
{ |
363 |
|
typedef bool type; |
364 |
|
type operator()() const; |
365 |
|
} thread_local learnedRewrite; |
366 |
|
extern struct minimalUnsatCores__option_t |
367 |
|
{ |
368 |
|
typedef bool type; |
369 |
|
type operator()() const; |
370 |
|
} thread_local minimalUnsatCores; |
371 |
|
extern struct modelCoresMode__option_t |
372 |
|
{ |
373 |
|
typedef ModelCoresMode type; |
374 |
|
type operator()() const; |
375 |
|
} thread_local modelCoresMode; |
376 |
|
extern struct modelUninterpPrint__option_t |
377 |
|
{ |
378 |
|
typedef ModelUninterpPrintMode type; |
379 |
|
type operator()() const; |
380 |
|
} thread_local modelUninterpPrint; |
381 |
|
extern struct modelWitnessValue__option_t |
382 |
|
{ |
383 |
|
typedef bool type; |
384 |
|
type operator()() const; |
385 |
|
} thread_local modelWitnessValue; |
386 |
|
extern struct doITESimpOnRepeat__option_t |
387 |
|
{ |
388 |
|
typedef bool type; |
389 |
|
type operator()() const; |
390 |
|
} thread_local doITESimpOnRepeat; |
391 |
|
extern struct produceAbducts__option_t |
392 |
|
{ |
393 |
|
typedef bool type; |
394 |
|
type operator()() const; |
395 |
|
} thread_local produceAbducts; |
396 |
|
extern struct produceAssertions__option_t |
397 |
|
{ |
398 |
|
typedef bool type; |
399 |
|
type operator()() const; |
400 |
|
} thread_local produceAssertions; |
401 |
|
extern struct produceAssignments__option_t |
402 |
|
{ |
403 |
|
typedef bool type; |
404 |
|
type operator()() const; |
405 |
|
} thread_local produceAssignments; |
406 |
|
extern struct produceInterpols__option_t |
407 |
|
{ |
408 |
|
typedef ProduceInterpols type; |
409 |
|
type operator()() const; |
410 |
|
} thread_local produceInterpols; |
411 |
|
extern struct produceModels__option_t |
412 |
|
{ |
413 |
|
typedef bool type; |
414 |
|
type operator()() const; |
415 |
|
} thread_local produceModels; |
416 |
|
extern struct produceProofs__option_t |
417 |
|
{ |
418 |
|
typedef bool type; |
419 |
|
type operator()() const; |
420 |
|
} thread_local produceProofs; |
421 |
|
extern struct unsatAssumptions__option_t |
422 |
|
{ |
423 |
|
typedef bool type; |
424 |
|
type operator()() const; |
425 |
|
} thread_local unsatAssumptions; |
426 |
|
extern struct unsatCores__option_t |
427 |
|
{ |
428 |
|
typedef bool type; |
429 |
|
type operator()() const; |
430 |
|
} thread_local unsatCores; |
431 |
|
extern struct repeatSimp__option_t |
432 |
|
{ |
433 |
|
typedef bool type; |
434 |
|
type operator()() const; |
435 |
|
} thread_local repeatSimp; |
436 |
|
extern struct compressItes__option_t |
437 |
|
{ |
438 |
|
typedef bool type; |
439 |
|
type operator()() const; |
440 |
|
} thread_local compressItes; |
441 |
|
extern struct zombieHuntThreshold__option_t |
442 |
|
{ |
443 |
|
typedef uint64_t type; |
444 |
|
type operator()() const; |
445 |
|
} thread_local zombieHuntThreshold; |
446 |
|
extern struct simplifyWithCareEnabled__option_t |
447 |
|
{ |
448 |
|
typedef bool type; |
449 |
|
type operator()() const; |
450 |
|
} thread_local simplifyWithCareEnabled; |
451 |
|
extern struct simplificationMode__option_t |
452 |
|
{ |
453 |
|
typedef SimplificationMode type; |
454 |
|
type operator()() const; |
455 |
|
} thread_local simplificationMode; |
456 |
|
extern struct solveBVAsInt__option_t |
457 |
|
{ |
458 |
|
typedef SolveBVAsIntMode type; |
459 |
|
type operator()() const; |
460 |
|
} thread_local solveBVAsInt; |
461 |
|
extern struct solveIntAsBV__option_t |
462 |
|
{ |
463 |
|
typedef uint64_t type; |
464 |
|
type operator()() const; |
465 |
|
} thread_local solveIntAsBV; |
466 |
|
extern struct solveRealAsInt__option_t |
467 |
|
{ |
468 |
|
typedef bool type; |
469 |
|
type operator()() const; |
470 |
|
} thread_local solveRealAsInt; |
471 |
|
extern struct sortInference__option_t |
472 |
|
{ |
473 |
|
typedef bool type; |
474 |
|
type operator()() const; |
475 |
|
} thread_local sortInference; |
476 |
|
extern struct doStaticLearning__option_t |
477 |
|
{ |
478 |
|
typedef bool type; |
479 |
|
type operator()() const; |
480 |
|
} thread_local doStaticLearning; |
481 |
|
extern struct sygusOut__option_t |
482 |
|
{ |
483 |
|
typedef SygusSolutionOutMode type; |
484 |
|
type operator()() const; |
485 |
|
} thread_local sygusOut; |
486 |
|
extern struct sygusPrintCallbacks__option_t |
487 |
|
{ |
488 |
|
typedef bool type; |
489 |
|
type operator()() const; |
490 |
|
} thread_local sygusPrintCallbacks; |
491 |
|
extern struct unconstrainedSimp__option_t |
492 |
|
{ |
493 |
|
typedef bool type; |
494 |
|
type operator()() const; |
495 |
|
} thread_local unconstrainedSimp; |
496 |
|
extern struct unsatCoresMode__option_t |
497 |
|
{ |
498 |
|
typedef UnsatCoresMode type; |
499 |
|
type operator()() const; |
500 |
|
} thread_local unsatCoresMode; |
501 |
|
// clang-format on |
502 |
|
|
503 |
|
namespace smt |
504 |
|
{ |
505 |
|
// clang-format off |
506 |
|
static constexpr const char* abstractValues__name = "abstract-values"; |
507 |
|
static constexpr const char* ackermann__name = "ackermann"; |
508 |
|
static constexpr const char* blockModelsMode__name = "block-models"; |
509 |
|
static constexpr const char* BVAndIntegerGranularity__name = "bvand-integer-granularity"; |
510 |
|
static constexpr const char* checkAbducts__name = "check-abducts"; |
511 |
|
static constexpr const char* checkInterpols__name = "check-interpols"; |
512 |
|
static constexpr const char* checkModels__name = "check-models"; |
513 |
|
static constexpr const char* checkProofs__name = "check-proofs"; |
514 |
|
static constexpr const char* checkSynthSol__name = "check-synth-sol"; |
515 |
|
static constexpr const char* checkUnsatCores__name = "check-unsat-cores"; |
516 |
|
static constexpr const char* debugCheckModels__name = "debug-check-models"; |
517 |
|
static constexpr const char* dumpToFileName__name = "dump-to"; |
518 |
|
static constexpr const char* dumpModeString__name = "dump"; |
519 |
|
static constexpr const char* earlyIteRemoval__name = "early-ite-removal"; |
520 |
|
static constexpr const char* expandDefinitions__name = "expand-definitions"; |
521 |
|
static constexpr const char* extRewPrep__name = "ext-rew-prep"; |
522 |
|
static constexpr const char* extRewPrepAgg__name = "ext-rew-prep-agg"; |
523 |
|
static constexpr const char* foreignTheoryRewrite__name = "foreign-theory-rewrite"; |
524 |
|
static constexpr const char* iandMode__name = "iand-mode"; |
525 |
|
static constexpr const char* interactiveMode__name = "interactive-mode"; |
526 |
|
static constexpr const char* doITESimp__name = "ite-simp"; |
527 |
|
static constexpr const char* learnedRewrite__name = "learned-rewrite"; |
528 |
|
static constexpr const char* minimalUnsatCores__name = "minimal-unsat-cores"; |
529 |
|
static constexpr const char* modelCoresMode__name = "model-cores"; |
530 |
|
static constexpr const char* modelUninterpPrint__name = "model-u-print"; |
531 |
|
static constexpr const char* modelWitnessValue__name = "model-witness-value"; |
532 |
|
static constexpr const char* doITESimpOnRepeat__name = "on-repeat-ite-simp"; |
533 |
|
static constexpr const char* produceAbducts__name = "produce-abducts"; |
534 |
|
static constexpr const char* produceAssertions__name = "produce-assertions"; |
535 |
|
static constexpr const char* produceAssignments__name = "produce-assignments"; |
536 |
|
static constexpr const char* produceInterpols__name = "produce-interpols"; |
537 |
|
static constexpr const char* produceModels__name = "produce-models"; |
538 |
|
static constexpr const char* produceProofs__name = "produce-proofs"; |
539 |
|
static constexpr const char* unsatAssumptions__name = "produce-unsat-assumptions"; |
540 |
|
static constexpr const char* unsatCores__name = "produce-unsat-cores"; |
541 |
|
static constexpr const char* repeatSimp__name = "repeat-simp"; |
542 |
|
static constexpr const char* compressItes__name = "simp-ite-compress"; |
543 |
|
static constexpr const char* zombieHuntThreshold__name = "simp-ite-hunt-zombies"; |
544 |
|
static constexpr const char* simplifyWithCareEnabled__name = "simp-with-care"; |
545 |
|
static constexpr const char* simplificationMode__name = "simplification"; |
546 |
|
static constexpr const char* solveBVAsInt__name = "solve-bv-as-int"; |
547 |
|
static constexpr const char* solveIntAsBV__name = "solve-int-as-bv"; |
548 |
|
static constexpr const char* solveRealAsInt__name = "solve-real-as-int"; |
549 |
|
static constexpr const char* sortInference__name = "sort-inference"; |
550 |
|
static constexpr const char* doStaticLearning__name = "static-learning"; |
551 |
|
static constexpr const char* sygusOut__name = "sygus-out"; |
552 |
|
static constexpr const char* sygusPrintCallbacks__name = "sygus-print-callbacks"; |
553 |
|
static constexpr const char* unconstrainedSimp__name = "unconstrained-simp"; |
554 |
|
static constexpr const char* unsatCoresMode__name = "unsat-cores-mode"; |
555 |
|
// clang-format on |
556 |
|
} |
557 |
|
|
558 |
|
} // namespace options |
559 |
|
|
560 |
|
// clang-format off |
561 |
|
|
562 |
|
// clang-format on |
563 |
|
|
564 |
|
namespace options { |
565 |
|
// clang-format off |
566 |
8 |
inline bool abstractValues__option_t::operator()() const |
567 |
8 |
{ return Options::current().smt.abstractValues; } |
568 |
33455 |
inline bool ackermann__option_t::operator()() const |
569 |
33455 |
{ return Options::current().smt.ackermann; } |
570 |
7418 |
inline BlockModelsMode blockModelsMode__option_t::operator()() const |
571 |
7418 |
{ return Options::current().smt.blockModelsMode; } |
572 |
206 |
inline uint64_t BVAndIntegerGranularity__option_t::operator()() const |
573 |
206 |
{ return Options::current().smt.BVAndIntegerGranularity; } |
574 |
14 |
inline bool checkAbducts__option_t::operator()() const |
575 |
14 |
{ return Options::current().smt.checkAbducts; } |
576 |
10 |
inline bool checkInterpols__option_t::operator()() const |
577 |
10 |
{ return Options::current().smt.checkInterpols; } |
578 |
41569 |
inline bool checkModels__option_t::operator()() const |
579 |
41569 |
{ return Options::current().smt.checkModels; } |
580 |
9854 |
inline bool checkProofs__option_t::operator()() const |
581 |
9854 |
{ return Options::current().smt.checkProofs; } |
582 |
8752 |
inline bool checkSynthSol__option_t::operator()() const |
583 |
8752 |
{ return Options::current().smt.checkSynthSol; } |
584 |
9854 |
inline bool checkUnsatCores__option_t::operator()() const |
585 |
9854 |
{ return Options::current().smt.checkUnsatCores; } |
586 |
12588 |
inline bool debugCheckModels__option_t::operator()() const |
587 |
12588 |
{ return Options::current().smt.debugCheckModels; } |
588 |
|
inline ManagedOut dumpToFileName__option_t::operator()() const |
589 |
|
{ return Options::current().smt.dumpToFileName; } |
590 |
|
inline std::string dumpModeString__option_t::operator()() const |
591 |
|
{ return Options::current().smt.dumpModeString; } |
592 |
13747 |
inline bool earlyIteRemoval__option_t::operator()() const |
593 |
13747 |
{ return Options::current().smt.earlyIteRemoval; } |
594 |
|
inline bool expandDefinitions__option_t::operator()() const |
595 |
|
{ return Options::current().smt.expandDefinitions; } |
596 |
13747 |
inline bool extRewPrep__option_t::operator()() const |
597 |
13747 |
{ return Options::current().smt.extRewPrep; } |
598 |
24 |
inline bool extRewPrepAgg__option_t::operator()() const |
599 |
24 |
{ return Options::current().smt.extRewPrepAgg; } |
600 |
13747 |
inline bool foreignTheoryRewrite__option_t::operator()() const |
601 |
13747 |
{ return Options::current().smt.foreignTheoryRewrite; } |
602 |
54 |
inline IandMode iandMode__option_t::operator()() const |
603 |
54 |
{ return Options::current().smt.iandMode; } |
604 |
|
inline bool interactiveMode__option_t::operator()() const |
605 |
|
{ return Options::current().smt.interactiveMode; } |
606 |
25296 |
inline bool doITESimp__option_t::operator()() const |
607 |
25296 |
{ return Options::current().smt.doITESimp; } |
608 |
16274 |
inline bool learnedRewrite__option_t::operator()() const |
609 |
16274 |
{ return Options::current().smt.learnedRewrite; } |
610 |
10104 |
inline bool minimalUnsatCores__option_t::operator()() const |
611 |
10104 |
{ return Options::current().smt.minimalUnsatCores; } |
612 |
7421 |
inline ModelCoresMode modelCoresMode__option_t::operator()() const |
613 |
7421 |
{ return Options::current().smt.modelCoresMode; } |
614 |
45 |
inline ModelUninterpPrintMode modelUninterpPrint__option_t::operator()() const |
615 |
45 |
{ return Options::current().smt.modelUninterpPrint; } |
616 |
27 |
inline bool modelWitnessValue__option_t::operator()() const |
617 |
27 |
{ return Options::current().smt.modelWitnessValue; } |
618 |
|
inline bool doITESimpOnRepeat__option_t::operator()() const |
619 |
|
{ return Options::current().smt.doITESimpOnRepeat; } |
620 |
15655 |
inline bool produceAbducts__option_t::operator()() const |
621 |
15655 |
{ return Options::current().smt.produceAbducts; } |
622 |
15974 |
inline bool produceAssertions__option_t::operator()() const |
623 |
15974 |
{ return Options::current().smt.produceAssertions; } |
624 |
18604 |
inline bool produceAssignments__option_t::operator()() const |
625 |
18604 |
{ return Options::current().smt.produceAssignments; } |
626 |
14743 |
inline ProduceInterpols produceInterpols__option_t::operator()() const |
627 |
14743 |
{ return Options::current().smt.produceInterpols; } |
628 |
45708 |
inline bool produceModels__option_t::operator()() const |
629 |
45708 |
{ return Options::current().smt.produceModels; } |
630 |
38998280 |
inline bool produceProofs__option_t::operator()() const |
631 |
38998280 |
{ return Options::current().smt.produceProofs; } |
632 |
8694 |
inline bool unsatAssumptions__option_t::operator()() const |
633 |
8694 |
{ return Options::current().smt.unsatAssumptions; } |
634 |
13080201 |
inline bool unsatCores__option_t::operator()() const |
635 |
13080201 |
{ return Options::current().smt.unsatCores; } |
636 |
29189 |
inline bool repeatSimp__option_t::operator()() const |
637 |
29189 |
{ return Options::current().smt.repeatSimp; } |
638 |
2 |
inline bool compressItes__option_t::operator()() const |
639 |
2 |
{ return Options::current().smt.compressItes; } |
640 |
2 |
inline uint64_t zombieHuntThreshold__option_t::operator()() const |
641 |
2 |
{ return Options::current().smt.zombieHuntThreshold; } |
642 |
2 |
inline bool simplifyWithCareEnabled__option_t::operator()() const |
643 |
2 |
{ return Options::current().smt.simplifyWithCareEnabled; } |
644 |
16995 |
inline SimplificationMode simplificationMode__option_t::operator()() const |
645 |
16995 |
{ return Options::current().smt.simplificationMode; } |
646 |
33535 |
inline SolveBVAsIntMode solveBVAsInt__option_t::operator()() const |
647 |
33535 |
{ return Options::current().smt.solveBVAsInt; } |
648 |
39442 |
inline uint64_t solveIntAsBV__option_t::operator()() const |
649 |
39442 |
{ return Options::current().smt.solveIntAsBV; } |
650 |
28936 |
inline bool solveRealAsInt__option_t::operator()() const |
651 |
28936 |
{ return Options::current().smt.solveRealAsInt; } |
652 |
35900 |
inline bool sortInference__option_t::operator()() const |
653 |
35900 |
{ return Options::current().smt.sortInference; } |
654 |
13747 |
inline bool doStaticLearning__option_t::operator()() const |
655 |
13747 |
{ return Options::current().smt.doStaticLearning; } |
656 |
705 |
inline SygusSolutionOutMode sygusOut__option_t::operator()() const |
657 |
705 |
{ return Options::current().smt.sygusOut; } |
658 |
|
inline bool sygusPrintCallbacks__option_t::operator()() const |
659 |
|
{ return Options::current().smt.sygusPrintCallbacks; } |
660 |
30903 |
inline bool unconstrainedSimp__option_t::operator()() const |
661 |
30903 |
{ return Options::current().smt.unconstrainedSimp; } |
662 |
1232042 |
inline UnsatCoresMode unsatCoresMode__option_t::operator()() const |
663 |
1232042 |
{ return Options::current().smt.unsatCoresMode; } |
664 |
|
// clang-format on |
665 |
|
|
666 |
|
namespace smt |
667 |
|
{ |
668 |
|
// clang-format off |
669 |
|
void setDefaultAbstractValues(Options& opts, bool value); |
670 |
|
void setDefaultAckermann(Options& opts, bool value); |
671 |
|
void setDefaultBlockModelsMode(Options& opts, BlockModelsMode value); |
672 |
|
void setDefaultBVAndIntegerGranularity(Options& opts, uint64_t value); |
673 |
|
void setDefaultCheckAbducts(Options& opts, bool value); |
674 |
|
void setDefaultCheckInterpols(Options& opts, bool value); |
675 |
|
void setDefaultCheckModels(Options& opts, bool value); |
676 |
|
void setDefaultCheckProofs(Options& opts, bool value); |
677 |
|
void setDefaultCheckSynthSol(Options& opts, bool value); |
678 |
|
void setDefaultCheckUnsatCores(Options& opts, bool value); |
679 |
|
void setDefaultDebugCheckModels(Options& opts, bool value); |
680 |
|
void setDefaultDumpToFileName(Options& opts, ManagedOut value); |
681 |
|
void setDefaultDumpModeString(Options& opts, std::string value); |
682 |
|
void setDefaultEarlyIteRemoval(Options& opts, bool value); |
683 |
|
void setDefaultExpandDefinitions(Options& opts, bool value); |
684 |
|
void setDefaultExtRewPrep(Options& opts, bool value); |
685 |
|
void setDefaultExtRewPrepAgg(Options& opts, bool value); |
686 |
|
void setDefaultForeignTheoryRewrite(Options& opts, bool value); |
687 |
|
void setDefaultIandMode(Options& opts, IandMode value); |
688 |
|
void setDefaultInteractiveMode(Options& opts, bool value); |
689 |
|
void setDefaultDoITESimp(Options& opts, bool value); |
690 |
|
void setDefaultLearnedRewrite(Options& opts, bool value); |
691 |
|
void setDefaultMinimalUnsatCores(Options& opts, bool value); |
692 |
|
void setDefaultModelCoresMode(Options& opts, ModelCoresMode value); |
693 |
|
void setDefaultModelUninterpPrint(Options& opts, ModelUninterpPrintMode value); |
694 |
|
void setDefaultModelWitnessValue(Options& opts, bool value); |
695 |
|
void setDefaultDoITESimpOnRepeat(Options& opts, bool value); |
696 |
|
void setDefaultProduceAbducts(Options& opts, bool value); |
697 |
|
void setDefaultProduceAssertions(Options& opts, bool value); |
698 |
|
void setDefaultProduceAssignments(Options& opts, bool value); |
699 |
|
void setDefaultProduceInterpols(Options& opts, ProduceInterpols value); |
700 |
|
void setDefaultProduceModels(Options& opts, bool value); |
701 |
|
void setDefaultProduceProofs(Options& opts, bool value); |
702 |
|
void setDefaultUnsatAssumptions(Options& opts, bool value); |
703 |
|
void setDefaultUnsatCores(Options& opts, bool value); |
704 |
|
void setDefaultRepeatSimp(Options& opts, bool value); |
705 |
|
void setDefaultCompressItes(Options& opts, bool value); |
706 |
|
void setDefaultZombieHuntThreshold(Options& opts, uint64_t value); |
707 |
|
void setDefaultSimplifyWithCareEnabled(Options& opts, bool value); |
708 |
|
void setDefaultSimplificationMode(Options& opts, SimplificationMode value); |
709 |
|
void setDefaultSolveBVAsInt(Options& opts, SolveBVAsIntMode value); |
710 |
|
void setDefaultSolveIntAsBV(Options& opts, uint64_t value); |
711 |
|
void setDefaultSolveRealAsInt(Options& opts, bool value); |
712 |
|
void setDefaultSortInference(Options& opts, bool value); |
713 |
|
void setDefaultDoStaticLearning(Options& opts, bool value); |
714 |
|
void setDefaultSygusOut(Options& opts, SygusSolutionOutMode value); |
715 |
|
void setDefaultSygusPrintCallbacks(Options& opts, bool value); |
716 |
|
void setDefaultUnconstrainedSimp(Options& opts, bool value); |
717 |
|
void setDefaultUnsatCoresMode(Options& opts, UnsatCoresMode value); |
718 |
|
// clang-format on |
719 |
|
} |
720 |
|
|
721 |
|
} // namespace options |
722 |
|
} // namespace cvc5 |
723 |
|
|
724 |
|
#endif /* CVC5__OPTIONS__SMT_H */ |