This PR further simplifies the option setup by only using int64_t or uint64_t for integer options.
name = "arithHeuristicPivots"
category = "regular"
long = "heuristic-pivots=N"
- type = "int16_t"
+ type = "int64_t"
default = "0"
help = "the number of times to apply the heuristic pivot rule; if N < 0, this defaults to the number of variables; if this is unset, this is tuned by the logic selection"
name = "arithStandardCheckVarOrderPivots"
category = "expert"
long = "standard-effort-variable-order-pivots=N"
- type = "int16_t"
+ type = "int64_t"
default = "-1"
help = "limits the number of pivots in a single invocation of check() at a non-full effort level using Bland's pivot rule"
name = "arithSimplexCheckPeriod"
category = "regular"
long = "simplex-check-period=N"
- type = "uint16_t"
+ type = "uint64_t"
default = "200"
help = "the number of pivots to do in simplex before rechecking for a conflict on all variables"
name = "arithPivotThreshold"
category = "regular"
long = "pivot-threshold=N"
- type = "uint16_t"
+ type = "uint64_t"
default = "2"
help = "sets the number of pivots using --pivot-rule per basic variable per simplex instance before using variable order"
name = "arithPropagateMaxLength"
category = "regular"
long = "prop-row-length=N"
- type = "uint16_t"
+ type = "uint64_t"
default = "16"
help = "sets the maximum row length to be used in propagation"
name = "arithMLTrickSubstitutions"
category = "regular"
long = "miplib-trick-subs=N"
- type = "unsigned"
+ type = "uint64_t"
default = "1"
help = "do substitution for miplib 'tmp' vars if defined in <= N eliminated vars"
name = "maxCutsInContext"
category = "regular"
long = "maxCutsInContext=N"
- type = "unsigned"
+ type = "uint64_t"
default = "65535"
help = "maximum cuts in a given context before signalling a restart"
name = "maxApproxDepth"
category = "regular"
long = "approx-branch-depth=N"
- type = "int16_t"
+ type = "int64_t"
default = "200"
help = "maximum branch depth the approximate solver is allowed to take"
name = "arithPropAsLemmaLength"
category = "regular"
long = "arith-prop-clauses=N"
- type = "uint16_t"
+ type = "uint64_t"
default = "8"
help = "rows shorter than this are propagated as clauses"
name = "dioSolverTurns"
category = "regular"
long = "dio-turns=N"
- type = "int"
+ type = "int64_t"
default = "10"
help = "turns in a row dio solver cutting gets"
name = "rrTurns"
category = "regular"
long = "rr-turns=N"
- type = "int"
+ type = "int64_t"
default = "3"
help = "round robin turn"
name = "replayEarlyCloseDepths"
category = "regular"
long = "replay-early-close-depth=N"
- type = "int"
+ type = "int64_t"
default = "1"
help = "multiples of the depths to try to close the approx log eagerly"
name = "replayFailurePenalty"
category = "regular"
long = "replay-failure-penalty=N"
- type = "int"
+ type = "int64_t"
default = "100"
help = "number of solve integer attempts to skips after a numeric failure"
name = "replayNumericFailurePenalty"
category = "regular"
long = "replay-num-err-penalty=N"
- type = "int"
+ type = "int64_t"
default = "4194304"
help = "number of solve integer attempts to skips after a numeric failure"
name = "replayRejectCutSize"
category = "regular"
long = "replay-reject-cut=N"
- type = "unsigned"
+ type = "uint64_t"
default = "25500"
help = "maximum complexity of any coefficient while replaying cuts"
name = "lemmaRejectCutSize"
category = "regular"
long = "replay-lemma-reject-cut=N"
- type = "unsigned"
+ type = "uint64_t"
default = "25500"
help = "maximum complexity of any coefficient while outputting replaying cut lemmas"
name = "soiApproxMajorFailurePen"
category = "regular"
long = "replay-soi-major-threshold-pen=N"
- type = "int"
+ type = "int64_t"
default = "50"
help = "threshold for a major tolerance failure by the approximate solver"
name = "soiApproxMinorFailurePen"
category = "regular"
long = "replay-soi-minor-threshold-pen=N"
- type = "int"
+ type = "int64_t"
default = "10"
help = "threshold for a minor tolerance failure by the approximate solver"
name = "ppAssertMaxSubSize"
category = "regular"
long = "pp-assert-max-sub-size=N"
- type = "unsigned"
+ type = "uint64_t"
default = "2"
help = "threshold for substituting an equality in ppAssert"
name = "nlExtTfTaylorDegree"
category = "regular"
long = "nl-ext-tf-taylor-deg=N"
- type = "int16_t"
+ type = "int64_t"
default = "4"
help = "initial degree of polynomials for Taylor approximation"
name = "arraysConfig"
category = "regular"
long = "arrays-config=N"
- type = "int"
+ type = "int64_t"
default = "0"
help = "set different array option configurations - for developers only"
name = "arraysPropagate"
category = "regular"
long = "arrays-prop=N"
- type = "int"
+ type = "int64_t"
default = "2"
help = "propagation effort for arrays: 0 is none, 1 is some, 2 is full"
name = "verbosity"
long = "verbosity=N"
category = "regular"
- type = "int"
+ type = "int64_t"
default = "0"
predicates = ["setVerbosity"]
help = "the verbosity level of cvc5"
name = "bitvectorAlgebraicBudget"
category = "expert"
long = "bv-algebraic-budget=N"
- type = "unsigned"
+ type = "uint64_t"
default = "1500"
help = "the budget allowed for the algebraic solver in number of SAT conflicts"
name = "bvNumFunc"
category = "expert"
long = "bv-num-func=N"
- type = "unsigned"
+ type = "uint64_t"
default = "1"
help = "number of function symbols in conflicts that are generalized"
name = "sygusAbortSize"
category = "regular"
long = "sygus-abort-size=N"
- type = "int"
+ type = "int64_t"
default = "-1"
help = "tells enumerative sygus to only consider solutions up to term size N (-1 == no limit, default)"
name = "decisionRandomWeight"
category = "expert"
long = "decision-random-weight=N"
- type = "int"
+ type = "int64_t"
default = "0"
help = "assign random weights to nodes between 0 and N-1 (0: disable)"
name = "defaultExprDepth"
category = "regular"
long = "expr-depth=N"
- type = "int"
+ type = "int64_t"
default = "0"
predicates = ["setDefaultExprDepthPredicate"]
help = "print exprs to depth N (0 == default, -1 == no limit)"
name = "defaultDagThresh"
category = "regular"
long = "dag-thresh=N"
- type = "int"
+ type = "int64_t"
default = "1"
predicates = ["setDefaultDagThreshPredicate"]
help = "dagify common subexprs appearing > N times (1 == default, 0 == don't dagify)"
]
CATEGORY_VALUES = ['common', 'expert', 'regular', 'undocumented']
-SUPPORTED_CTYPES = ['int', 'unsigned', 'unsigned long', 'double']
### Other globals
if option.type == 'bool':
return 'res.push_back({{"{}", opts.{}.{} ? "true" : "false"}});'.format(
option.long_name, module.id, option.name)
+ elif option.type == 'std::string':
+ return 'res.push_back({{"{}", opts.{}.{}}});'.format(
+ option.long_name, module.id, option.name)
elif is_numeric_cpp_type(option.type):
return 'res.push_back({{"{}", std::to_string(opts.{}.{})}});'.format(
option.long_name, module.id, option.name)
else:
- return '{{ std::stringstream ss; ss << opts.{}.{}; res.push_back({{"{}", ss.str()}}); }}'.format(
- module.id, option.name, option.long_name)
+ return '{{ std::stringstream ss; ss << opts.{}.{}; res.push_back({{"{}", ss.str()}}); }}'.format(module.id,
+ option.name, option.long_name)
+
class Module(object):
"""Options module.
Check if given type is a numeric C++ type (this should cover the most
common cases).
"""
- if ctype in SUPPORTED_CTYPES:
- return True
- elif re.match('u?int[0-9]+_t', ctype):
- return True
- return False
+ return ctype in ['int64_t', 'uint64_t', 'double']
def format_include(include):
name = "proofPedantic"
category = "regular"
long = "proof-pedantic=N"
- type = "uint32_t"
+ type = "uint64_t"
default = "0"
help = "assertion failure for any incorrect rule application or untrusted lemma having pedantic level <=N with proof"
name = "satRandomSeed"
category = "regular"
long = "random-seed=S"
- type = "uint32_t"
+ type = "uint64_t"
default = "0"
help = "sets the random seed for the sat solver"
name = "satRestartFirst"
category = "regular"
long = "restart-int-base=N"
- type = "unsigned"
+ type = "uint64_t"
default = "25"
help = "sets the base restart interval for the sat solver (N=25 by default)"
name = "instWhenPhase"
category = "regular"
long = "inst-when-phase=N"
- type = "int"
+ type = "int64_t"
default = "2"
help = "instantiation rounds quantifiers takes (>=1) before allowing theory combination to happen"
name = "instMaxLevel"
category = "regular"
long = "inst-max-level=N"
- type = "int"
+ type = "int64_t"
default = "-1"
help = "maximum inst level of terms used to instantiate quantified formulas with (-1 == no limit, default)"
name = "instMaxRounds"
category = "regular"
long = "inst-max-rounds=N"
- type = "int"
+ type = "int64_t"
default = "-1"
help = "maximum number of instantiation rounds (-1 == no limit, default)"
name = "fullSaturateLimit"
category = "regular"
long = "full-saturate-quant-limit=N"
- type = "int"
+ type = "int64_t"
default = "-1"
help = "maximum number of rounds of enumerative instantiation to apply (-1 means no limit)"
name = "fmfTypeCompletionThresh"
category = "regular"
long = "fmf-type-completion-thresh=N"
- type = "int"
+ type = "int64_t"
default = "1000"
help = "the maximum cardinality of an interpreted type for which exhaustive enumeration in finite model finding is attempted"
name = "conjectureGenPerRound"
category = "regular"
long = "conjecture-gen-per-round=N"
- type = "int"
+ type = "int64_t"
default = "1"
help = "number of conjectures to generate per instantiation round"
name = "conjectureGenGtEnum"
category = "regular"
long = "conjecture-gen-gt-enum=N"
- type = "int"
+ type = "int64_t"
default = "50"
help = "number of ground terms to generate for model filtering"
name = "conjectureGenMaxDepth"
category = "regular"
long = "conjecture-gen-max-depth=N"
- type = "int"
+ type = "int64_t"
default = "3"
help = "maximum depth of terms to consider for conjectures"
name = "cegqiSingleInvReconstructLimit"
category = "regular"
long = "sygus-si-rcons-limit=N"
- type = "int"
+ type = "int64_t"
default = "10000"
help = "number of rounds of enumeration to use during solution reconstruction (negative means unlimited)"
name = "sygusRepairConstTimeout"
category = "regular"
long = "sygus-repair-const-timeout=N"
- type = "unsigned long"
+ type = "uint64_t"
help = "timeout (in milliseconds) for the satisfiability check to repair constants in sygus candidate solutions"
[[option]]
name = "sygusActiveGenEnumConsts"
category = "regular"
long = "sygus-active-gen-cfactor=N"
- type = "unsigned long"
+ type = "uint64_t"
default = "5"
help = "the branching factor for the number of interpreted constants to consider for each size when using --sygus-active-gen=enum"
name = "sygusPbeMultiFairDiff"
category = "regular"
long = "sygus-pbe-multi-fair-diff=N"
- type = "int"
+ type = "int64_t"
default = "0"
help = "when using multiple enumerators, ensure that we only register values of minimial term size plus this value (default 0)"
name = "sygusRecFunEvalLimit"
category = "regular"
long = "sygus-rec-fun-eval-limit=N"
- type = "unsigned"
+ type = "uint64_t"
default = "1000"
help = "use a hard limit for how many times in a given evaluator call a recursive function can be evaluated (so infinite loops can be avoided)"
name = "sygusVerifyInstMaxRounds"
category = "regular"
long = "sygus-verify-inst-max-rounds=N"
- type = "int"
+ type = "int64_t"
default = "3"
help = "maximum number of instantiation rounds for sygus verification calls (-1 == no limit, default is 3)"
name = "sygusSamples"
category = "regular"
long = "sygus-samples=N"
- type = "int"
+ type = "int64_t"
default = "1000"
help = "number of points to consider when doing sygus rewriter sample testing"
name = "sygusRewSynthInputNVars"
category = "regular"
long = "sygus-rr-synth-input-nvars=N"
- type = "int"
+ type = "int64_t"
default = "3"
help = "the maximum number of variables per type that appear in rewrites from sygus-rr-synth-input"
name = "sygusExprMinerCheckTimeout"
category = "regular"
long = "sygus-expr-miner-check-timeout=N"
- type = "unsigned long"
+ type = "uint64_t"
help = "timeout (in milliseconds) for satisfiability checks in expression miners"
[[option]]
name = "sygusQueryGenThresh"
category = "regular"
long = "sygus-query-gen-thresh=N"
- type = "unsigned"
+ type = "uint64_t"
default = "5"
help = "number of points that we allow to be equal for enumerating satisfiable queries with sygus-query-gen"
name = "zombieHuntThreshold"
category = "regular"
long = "simp-ite-hunt-zombies=N"
- type = "uint32_t"
+ type = "uint64_t"
default = "524288"
help = "post ite compression enables zombie removal while the number of nodes is above this threshold"
name = "BVAndIntegerGranularity"
category = "undocumented"
long = "bvand-integer-granularity=N"
- type = "uint32_t"
+ type = "uint64_t"
default = "1"
help = "granularity to use in --solve-bv-as-int mode and for iand operator (experimental)"
name = "solveIntAsBV"
category = "undocumented"
long = "solve-int-as-bv=N"
- type = "uint32_t"
+ type = "uint64_t"
default = "0"
help = "attempt to solve a pure integer satisfiable problem by bitblasting in sufficient bitwidth (experimental)"
name = "ufssTotalityLimited"
category = "regular"
long = "uf-ss-totality-limited=N"
- type = "int"
+ type = "int64_t"
default = "-1"
help = "apply totality axioms, but only up to cardinality N (-1 == do not apply totality axioms, default)"
name = "ufssAbortCardinality"
category = "regular"
long = "uf-ss-abort-card=N"
- type = "int"
+ type = "int64_t"
default = "-1"
help = "tells the uf with cardinality to only consider models that interpret uninterpreted sorts of cardinality at most N (-1 == no limit, default)"