THIS(1)
๐ธ THIS(1) ๐ธ
okay bestie, welcome to This โ straight outta the User Commands manual, section 1 of your local man pages. It's the cvc5 theorem prover and it's genuinely that girl. Sit down, hydrate, we're going through every single flag together ๐ซถโจ
๐ NAME ๐
This โ Theorem prover for SMT problems ๐
๐ฆ DESCRIPTION ๐ฆ
okay so the vibe here is:
cvc5 [options] [input-file]
no cap. If you don't hand it an input file, or you literally just pass it -, cvc5 reads from standard input instead. lowkey iconic of it.
๐ Most commonly-used cvc5 options ๐
these are the main-character flags, the ones you'll actually reach for:
--incremental,-iโ enable incremental solving [*]--lang=LANG,--input-language=LANG,-L LANGโ force the input language (default is"auto"; peep--lang helpfor the tea)--output=TAG,-o TAGโ enable output tag.--parse-onlyโ exit right after parsing the input, no further [*]--preprocess-onlyโ exit right after preprocessing the input [*]--quiet,-qโ decrease verbosity (and yes, you can repeat it, go off)--rlimit=Nโ set the resource limit--rlimit-per=N,--reproducible-resource-limit=Nโ set the resource limit per query--statsโ give you statistics on exit [*]--stats-allโ print the unchanged (defaulted) statistics too [*]--stats-internalโ print the internal (non-public) statistics as well [*]--tlimit=MSโ set the time limit in milliseconds of wall clock time--tlimit-per=MSโ set the time limit per query in milliseconds--verbose,-vโ increase verbosity (also repeatable, we love options)--verbosity=Nโ the verbosity level of cvc5--decision=MODE,--decision-mode=MODEโ choose the decision mode, see--decision=help--copyrightโ show cvc5's copyright info--early-exitโ do not run destructors at exit; default on except in debug builds [*]--help,-hโ the full command line reference--help-option-categoriesโ print a summary of options for each category--help-regular,-Hโ the regular command line reference--interactiveโ force interactive shell / non-interactive mode [*]--print-successโ print the"success"output that SMT-LIBv2 requires [*]--seed=N,--random-seed=N,-s Nโ seed for the random number generator--show-configโ show cvc5's static configuration--version,-Vโ identify this cvc5 binary--force-logic=LOGICโ set the logic, and override all further user attempts to change it--strict-parsingโ be less tolerant of non-conforming inputs, this is an alias for--parsing-mode=strict[*]--dag-thresh=Nโ dagify common subexprs appearing > N times (1 == default, 0 == don't dagify)--expr-depth=Nโ print exprs to depth N (0 == default, -1 == no limit)--output-lang=LANG,--output-language=LANGโ force the output language (default is"auto"; see--output-lang help)--proof-check=MODEโ select the internal proof checking mode--proof-granularity=MODEโ modes for proof granularity--proof-print-conclusionโ print the conclusion of proof steps when printing AST [*]--proof-print-referenceโ print a reference to the original file instead of redeclaring [*]--enum-instโ enumerative instantiation: instantiate with ground terms from the relevant domain, then arbitrary ground terms before answering unknown [*]--full-saturate-quantโ resort to full effort techniques instead of answering unknown due to limited quantifier reasoning. Currently enables enumerative instantiation [*]--print-inst=MODEโ print format for printing instantiations--check-abductsโ checks whether produced solutions to get-abduct are correct [*]--check-interpolantsโ checks whether produced solutions to get-interpolant are correct [*]--check-model-subsolverโ use a subsolver to compute values when applicable in calls to get-value and check-models [*]--check-modelsโ after SAT/INVALID/UNKNOWN, check that the generated model satisfies user assertions [*]--check-proofsโ after UNSAT/VALID, check the generated proof (with proof) [*]--check-synth-solโ checks whether produced solutions to functions-to-synthesize satisfy the conjecture [*]--check-unsat-coresโ after UNSAT/VALID, produce and check an unsat core (heads up: expensive) [*]--debug-check-modelsโ after SAT/INVALID/UNKNOWN, check that the generated model satisfies user and internal assertions [*]--produce-models,-mโ support the get-value and get-model commands [*]--produce-proofsโ produce proofs, support check-proofs and get-proof [*]--produce-unsat-coresโ turn on unsat core generation. Unless otherwise specified, cores will be produced using SAT soving under assumptions and preprocessing proofs. [*]--condense-function-valuesโ condense values for functions in models rather than explicitly representing them [*]--default-function-value-mode=MODEโ mode for choosing default values for functions
๐ซ Additional cvc5 options ๐ซ
there's more. there's always more. she's thorough ๐
๐งฎ From the Arithmetic Theory module ๐งฎ
--approx-branch-depth=Nโ maximum branch depth the approximate solver is allowed to take (EXPERTS only)--arith-brabโ whether to use simple rounding, similar to a unit-cube test, for integers [*]--arith-eq-solverโ whether to use the equality solver in the theory of arithmetic (EXPERTS only) [*]--arith-expโ enables non-standard extensions of the arithmetic solver (EXPERTS only) [*]--arith-prop=MODEโ turns on arithmetic propagation (default is'old', see--arith-prop=help) (EXPERTS only)--arith-prop-clauses=Nโ rows shorter than this are propagated as clauses (EXPERTS only)--arith-rewrite-equalitiesโ turns on the preprocessing rewrite that turns equalities into a conjunction of inequalities [*]--arith-static-learningโ do arithmetic static learning for ite terms based on bounds when static learning is enabled [*]--collect-pivot-statsโ collect the pivot history (EXPERTS only) [*]--cut-all-boundedโ turns on the integer solving step of periodically cutting all integer variables that have both upper and lower bounds (EXPERTS only) [*]--dio-decompsโ let skolem variables for integer divisibility constraints leak from the dio solver (EXPERTS only) [*]--dio-solverโ turns on the Linear Diophantine Equation solver (Griggio, JSAT 2012) (EXPERTS only) [*]--dio-turns=Nโ turns in a row dio solver cutting gets (EXPERTS only)--error-selection-rule=RULEโ change the pivot rule for the basic variable (default is'min', see--pivot-rule help) (EXPERTS only)--fc-penaltiesโ turns on degenerate pivot penalties (EXPERTS only) [*]--heuristic-pivots=Nโ 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 (EXPERTS only)--lemmas-on-replay-failureโ attempt to use external lemmas if approximate solve integer failed (EXPERTS only) [*]--maxCutsInContext=Nโ maximum cuts in a given context before signalling a restart (EXPERTS only)--miplib-trickโ turns on the preprocessing step of attempting to infer bounds on miplib problems (EXPERTS only) [*]--miplib-trick-subs=Nโ do substitution for miplib'tmp'vars if defined in <= N eliminated vars (EXPERTS only)--new-propโ use the new row propagation system (EXPERTS only) [*]--nl-covโ whether to use the cylindrical algebraic coverings solver for non-linear arithmetic [*]--nl-cov-forceโ forces using the cylindrical algebraic coverings solver, even in cases where it is possibly not safe to do so (EXPERTS only) [*]--nl-cov-lift=MODEโ choose the Coverings lifting mode (EXPERTS only)--nl-cov-linear-model=MODEโ whether to use the linear model as initial guess for the cylindrical algebraic coverings solver--nl-cov-proj=MODEโ choose the Coverings projection operator (EXPERTS only)--nl-cov-pruneโ whether to prune intervals more aggressively (EXPERTS only) [*]--nl-cov-var-elimโ whether to eliminate variables using equalities before going into the cylindrical algebraic coverings solver. It can not be used when producing proofs right now. (EXPERTS only) [*]--nl-ext=MODEโ incremental linearization approach to non-linear--nl-ext-ent-confโ check for entailed conflicts in non-linear solver (EXPERTS only) [*]--nl-ext-factorโ use factoring inference in non-linear incremental linearization solver [*]--nl-ext-flatten-monโ use inference schema based on flattening monomials [*]--nl-ext-inc-precโ whether to increment the precision for irrational function constraints (EXPERTS only) [*]--nl-ext-purifyโ purify non-linear terms at preprocess (EXPERTS only) [*]--nl-ext-rboundโ use resolution-style inference for inferring new bounds in non-linear incremental linearization solver (EXPERTS only) [*]--nl-ext-rewriteโ do context-dependent simplification based on rewrites in non-linear solver [*]--nl-ext-split-zeroโ initial splits on zero for all variables (EXPERTS only) [*]--nl-ext-tf-taylor-deg=Nโ initial degree of polynomials for Taylor approximation (EXPERTS only)--nl-ext-tf-tplanesโ use non-terminating tangent plane strategy for transcendental functions for non-linear incremental linearization solver [*]--nl-ext-tplanesโ use non-terminating tangent plane strategy for non-linear incremental linearization solver [*]--nl-ext-tplanes-interleaveโ interleave tangent plane strategy for non-linear incremental linearization solver [*]--nl-icpโ whether to use ICP-style propagations for non-linear arithmetic (EXPERTS only) [*]--nl-rlv=MODEโ choose mode for using relevance of assertions in non-linear arithmetic (EXPERTS only)--nl-rlv-assert-boundsโ use bound inference utility to prune when an assertion is entailed by another (EXPERTS only) [*]--pb-rewritesโ apply pseudo boolean rewrites (EXPERTS only) [*]--pivot-threshold=Nโ sets the number of pivots using--pivot-ruleper basic variable per simplex instance before using variable order (EXPERTS only)
and bestieโฆ we're not even done yet ๐ more parts are coming, don't go anywhere ๐ฆ
--pp-assert-max-sub-size=Nโ the threshold for substituting an equality in ppAssert. (EXPERTS only) ๐งช--prop-row-length=Nโ sets the maximum row length that gets used in propagation. (EXPERTS only)--replay-early-close-depth=Nโ multiples of the depths to try to close the approx log eagerly. (EXPERTS only)--replay-lemma-reject-cut=Nโ maximum complexity of any coefficient while outputting replaying cut lemmas. (EXPERTS only)--replay-num-err-penalty=Nโ number of solve integer attempts to skips after a numeric failure. (EXPERTS only) ๐ญ--replay-reject-cut=Nโ maximum complexity of any coefficient while replaying cuts. (EXPERTS only)--restrict-pivotsโ have a pivot cap for simplex at effort levels below fullEffort. (EXPERTS only)[*]--revert-arith-models-on-unsatโ revert the arithmetic model to a known safe model on unsat, if one is cached. (EXPERTS only)[*]๐--rr-turns=Nโ round robin turn. (EXPERTS only) ๐--se-solve-intโ attempt to use the approximate solve integer method on standard effort. (EXPERTS only)[*]--simplex-check-period=Nโ the number of pivots to do in simplex before rechecking for a conflict on all variables. (EXPERTS only)--soi-qeโ use quick explain to minimize the sum of infeasibility conflicts. (EXPERTS only)[*]--standard-effort-variable-order-pivots=Nโ limits the number of pivots in a single invocation of check() at a non-full effort level, using Bland's pivot rule. (EXPERTS only)--unate-lemmas=MODEโ determines which lemmas to add before solving (default is'all', see--unate-lemmas=help). (EXPERTS only)--use-approxโ attempt to use an approximate solver. (EXPERTS only)[*]--use-fcsimplexโ use focusing and converging simplex (FMCAD 2013 submission). (EXPERTS only)[*]--use-soiโ use sum of infeasibility simplex (FMCAD 2013 submission). (EXPERTS only)[*]
๐ From the Arrays Theory module
--arrays-eager-indexโ turn on eager index splitting for generated array lemmas.[*]--arrays-eager-lemmasโ turn on eager lemma generation for arrays. (EXPERTS only)[*]--arrays-expโ enable experimental features in the theory of arrays. (EXPERTS only)[*]๐งช--arrays-optimize-linearโ turn on optimization for linear array terms (see de Moura FMCAD 09 arrays paper). (EXPERTS only)[*]--arrays-prop=Nโ propagation effort for arrays:0is none,1is some,2is full. (EXPERTS only)--arrays-reduce-sharingโ use model information to reduce size of care graph for arrays. (EXPERTS only)[*]--arrays-weak-equivโ use algorithm from Christ/Hoenicke (SMT 2014). (EXPERTS only)[*]
๐ From the Bags Theory module
--bagsโ enables the bags solver in applicable logics. (EXPERTS only)[*]
๐งฑ From the Base module
--err=erroutput|--diagnostic-output-channel=erroutputโ Set the error (or diagnostic) output channel. Writes to stderr for"stderr"or"--", stdout for"stdout"or the given filename otherwise. (EXPERTS only)--in=inputโ Set the error (or diagnostic) output channel. Reads from stdin for"stdin"or"--"and the given filename otherwise. (EXPERTS only)--out=output|--regular-output-channel=outputโ Set the error (or diagnostic) output channel. Writes to stdout for"stdout"or"--", stderr for"stderr"or the given filename otherwise. (EXPERTS only)
ok bestie yes those three really do all say "Set the error (or diagnostic) output channel" in the source text, I'm not messing with you, that's literally what it says ๐ copy-paste era. Anyway.
--plugin-notify-sat-clause-in-solveโ only inform plugins of SAT clauses when we are in the main solving loop of the SAT solver. (EXPERTS only)[*]--plugin-share-skolemsโ true if we permit sharing theory lemmas and SAT clauses with skolems. (EXPERTS only)[*]--rweight=VAL=Nโ set a single resource weight. (EXPERTS only) โ๏ธ--safe-mode=MODEโ modes for restricting expert options and theories. (EXPERTS only) ๐ก๏ธ--stats-every-queryโ in incremental mode, print stats after every satisfiability or validity query.[*]--trace=TAG|-t TAGโ trace something (e.g.-t pushpop), can repeat and may contain wildcards like (e.g.-t theory::*). (EXPERTS only) ๐
๐ข From the Bitvector Theory module
--bitblast=MODEโ choose bitblasting mode, see--bitblast=help.--bitwise-eqโ lift equivalence with one-bit bit-vectors to be boolean operations. (EXPERTS only)[*]--bool-to-bv=MODEโ convert booleans to bit-vectors of size 1 at various levels of aggressiveness, see--bool-to-bv=help.--bv-assert-inputโ assert input assertions on user-level 0 instead of assuming them in the bit-vector SAT solver. (EXPERTS only)[*]--bv-eager-evalโ perform eager context-dependent evaluation for applications of bv kinds in the equality engine.[*]--bv-eq-engineโ enable equality engine when possible in bitvector theory. (EXPERTS only)[*]--bv-gauss-elimโ simplify formula via Gaussian Elimination if applicable. (EXPERTS only)[*]--bv-intro-pow2โ introduce bitvector powers of two as a preprocessing pass. (EXPERTS only)[*]--bv-propagateโ use bit-vector propagation in the bit-blaster. (EXPERTS only)[*]--bv-rw-extend-eqโ enable additional rewrites over zero/sign extend over equalities with constants (useful on BV/2017-Preiner-scholl-smt08). (EXPERTS only)[*]--bv-sat-solver=MODEโ choose which sat solver to use, see--bv-sat-solver=help.--bv-solver=MODEโ choose bit-vector solver, see--bv-solver=help.--bv-to-boolโ lift bit-vectors of size 1 to booleans when possible.[*]
๐ณ From the Datatypes Theory module
--cdt-bisimilarโ do bisimilarity check for co-datatypes. (EXPERTS only)[*]--datatypes-expโ enables reasoning about codatatypes and extended datatype terms. (EXPERTS only)[*]--dt-binary-splitโ do binary splits for datatype constructor types. (EXPERTS only)[*]--dt-blast-splitsโ when applicable, blast splitting lemmas for all variables at once. (EXPERTS only)[*]--dt-cyclicโ do cyclicity check for datatypes. (EXPERTS only)[*]--dt-infer-as-lemmasโ always send lemmas out instead of making internal inferences. (EXPERTS only)[*]--dt-nested-recโ allow nested recursion in datatype definitions. (EXPERTS only)[*]--dt-polite-optimizeโ turn on optimization for polite combination. (EXPERTS only)[*]--dt-share-selโ internally use shared selectors across multiple constructors. (EXPERTS only)[*]--sygus-abort-size=Nโ tells enumerative sygus to only consider solutions up to term sizeN(-1== no limit, default).--sygus-fair=MODEโ if and how to apply fairness for sygus.--sygus-fair-maxโ use max instead of sum for multi-function sygus conjectures. (EXPERTS only)[*]--sygus-rewriter=MODEโ if and how to apply rewriting for sygus symmetry breaking.--sygus-simple-sym-break=MODEโ if and how to apply simple symmetry breaking based on the grammar for smart enumeration.--sygus-sym-break-lazyโ lazily add symmetry breaking lemmas for terms. (EXPERTS only)[*]--sygus-sym-break-pbeโ sygus symmetry breaking lemmas based on pbe conjectures.[*]--sygus-sym-break-rlvโ add relevancy conditions to symmetry breaking lemmas. (EXPERTS only)[*]
๐ง From the Decision Heuristics module
--jh-rlv-orderโ maintain activity-based ordering for decision justification heuristic. (EXPERTS only)[*]--jh-skolem=MODEโ policy for when to satisfy skolem definitions in justification heuristic. (EXPERTS only)--jh-skolem-rlv=MODEโ policy for when to consider skolem definitions relevant in justification heuristic. (EXPERTS only)
โ๏ธ From the Expression module
--type-checkingโ type check expressions. (EXPERTS only)[*]--wf-checkingโ check that terms passed to API methods are well formed (defaultfalsefor text interface). (EXPERTS only)[*]
๐ From the Finite Field Theory module
--ffโ enables the finite field solver in applicable logics. (EXPERTS only)[*]--ff-bitsumโ parse bitsums. (EXPERTS only)[*]--ff-elim-disjunctive-bitโ rewrite disjunctive bit constraints(or (= x 1) (= x 0))as(= (* x x) x). (EXPERTS only)[*]--ff-field-polysโ include field polynomials in Groebner basis computation; don't do this. (EXPERTS only)[*]๐--ff-solver=MODEโ which field solver (default:'gb'; see--ff-solver=help). (EXPERTS only)--ff-trace-gbโ use a traced groebner basis engine. (EXPERTS only)[*]
๐ From the Floating-Point module
--fpโ enables the floating point theory in applicable logics. (EXPERTS only)[*]--fp-expโ Allow floating-point sorts of all sizes, rather than onlyFloat32(8/24) orFloat64(11/53) (experimental). (EXPERTS only)[*]๐งช--fp-lazy-wbโ Enable lazier word-blasting (on preNotifyFact instead of registerTerm). (EXPERTS only)[*]
๐ From the Driver module
--dump-difficultyโ dump the difficulty measure after every response to check-sat.[*]--dump-instantiationsโ output instantiations of quantified formulas after every UNSAT/VALID response.[*]--dump-instantiations-debugโ output instantiations of quantified formulas after every UNSAT/VALID response, with debug information. (EXPERTS only)[*]--dump-modelsโ output models after every SAT/INVALID/UNKNOWN response.[*]--dump-proofsโ output proofs after every UNSAT/VALID response.[*]--dump-unsat-coresโ output unsat cores after every UNSAT/VALID response.[*]--dump-unsat-cores-lemmasโ output lemmas in unsat cores after every UNSAT/VALID response.[*]--force-no-limit-cpu-while-dumpโ Force no CPU limit when dumping models and proofs. (EXPERTS only)[*]--portfolio-dry-runโ Print the strategies that would be run with--use-portfolio, without executing them. (EXPERTS only)[*]--portfolio-jobs=nโ Number of parallel jobs the portfolio engine can run. (EXPERTS only)--segv-spinโ spin on segfault/other crash waiting for gdb. (EXPERTS only)[*]๐--show-trace-tagsโ dumps every single tag you could ever trace with (EXPERTS only) ๐--use-portfolioโ turns on internal portfolio mode, picked based on the logic (EXPERTS only) [*]
๐ฆ From the Parallel module ๐ฆ
--append-learned-literals-to-cubesโ ships the learned literals out together with the cubes (EXPERTS only) [*]--checks-before-partition=Nโ how many standard-or-full-effort checks happen before we start partitioning (EXPERTS only)--checks-between-partitions=Nโ how many checks go down in between partitions (EXPERTS only)--compute-partitions=Nโ makes n partitions. heads up bestie: if n <2, computing partitions gets switched off completely (EXPERTS only)--partition-check=MODE | --check=MODEโ picks whether the partitioning happens at a full check or a standard check (EXPERTS only)--partition-conflict-size=Nโ the number of literals in a cube; and if no partition size is set, then the partition conflict size gets chosen as log2 of the number of requested partitions (EXPERTS only)--partition-start-time=Nโ when to start creating partitions, in seconds (EXPERTS only)--partition-strategy=MODE | --partition=MODEโ chooses the partition strategy mode (EXPERTS only)--partition-time-interval=Nโ how long to wait between scatter partitions (EXPERTS only)--partition-tlimit=Nโ time limit for partitioning, in seconds (EXPERTS only)--partition-when=MODEโ chooses when to partition (EXPERTS only)--random-partitioningโ creates random partitions (EXPERTS only) [*]--write-partitions-to=output | --partitions-out=outputโ sets the output channel where partitions get written (EXPERTS only)
๐ From the Parser module ๐
--filesystem-accessโ limits file system access when it's set to false (EXPERTS only) [*]--fresh-bindersโ always builds fresh variables when parsing binders, no exceptions (EXPERTS only) [*]--fresh-declarationsโ uses the API interface for fresh constants while parsing declarations and definitions [*]--global-declarationsโ forces every declaration and definition to be global while parsing [*]--parse-skolem-definitionsโ lets you parse skolems in the input file (EXPERTS only) [*]--parsing-mode=MODEโ picks the parsing mode โ run--parsing-mode=helpto see your options (EXPERTS only)--semantic-checksโ switches on semantic checks, type checks included (EXPERTS only) [*]--term-sort-overloadโ allows terms and sorts to be overloaded (EXPERTS only) [*]
๐ From the Printing module ๐
--bv-print-consts-as-indexed-symbolsโ prints bit-vector constants in decimal (like(_ bv1 4)) instead of binary (like#b0001), and yeah it applies to SMT-LIB 2.x [*]--flatten-ho-chainsโ prints (binary) application chains all flattened out, e.g.(a b c)instead of((a b) c)(EXPERTS only) [*]--model-u-print=MODEโ decides how uninterpreted elements get printed inside models--print-arith-lit-tokenโ prints rationals and negative arithmetic literals as lexed tokens, e.g.1/4,-1.5(EXPERTS only) [*]--print-skolem-definitionsโ prints skolems based on their definitions, e.g.@ARRAY_DIFF_Nprints instead as(@array.diff A B)(EXPERTS only) [*]
๐ฅ From the Proof module ๐ฅ
--check-proof-stepsโ checks proof steps for satisfiability, for refutation soundness testing. heads up tho: this only checks steps for non-core proof rules (EXPERTS only) [*]--check-proofs-completeโ treats an incomplete proof as a failure (and yes, it's enabled by default in safe builds) (EXPERTS only) [*]--drat-binary-formatโ prints the DRAT proof in binary format (EXPERTS only) [*]--lfsc-expand-trustโ prints the children of trusted proof steps (EXPERTS only) [*]--lfsc-flattenโ flattens the steps in the LFSC proof (EXPERTS only) [*]--opt-res-reconstruction-sizeโ optimizes resolution reconstruction so the proof gets smaller [*]--print-dot-clustersโ says whether the proof node clusters (e.g. SAT, CNF, INPUT) get printed or not when you're using the dot format. (EXPERTS only) [*]--proof-alethe-define-skolemsโ in Alethe proofs, uses define-funs in the proof preamble for Skolemization terms (EXPERTS only) [*]--proof-alethe-res-pivotsโ adds pivots to Alethe resolution steps (EXPERTS only) [*]--proof-allow-trustโ whether trust is allowed in the proof printer (when it applies) (EXPERTS only) [*]--proof-chain-m-resโ uses chain multiset resolution [*]--proof-dag-globalโ dagifies terms in proofs using global definitions (EXPERTS only) [*]--proof-dot-dagโ tells you if the dot proof gets printed as a DAG or as a tree (EXPERTS only) [*]--proof-elim-subtypesโ eliminates subtypes (mixed arithmetic) in proofs (EXPERTS only) [*]--proof-format-mode=MODEโ selects the language of the proof output (EXPERTS only)--proof-logโ proof logging mode (EXPERTS only) [*]--proof-pedantic=Nโ throws an assertion failure for any incorrect rule application or untrusted lemma with pedantic level<=Nthat comes with a proof (EXPERTS only)--proof-pp-mergeโ merges subproofs in the final proof post-processor (EXPERTS only) [*]--proof-pre-simp-lookahead=Nโ the lookahead depth for merging proofs at previsit (EXPERTS only)--proof-prune-inputโ prunes unused input assumptions out of the final scope (EXPERTS only) [*]--proof-rewrite-rcons-rec-limit=Nโ the matching recursion limit for reconstructing proofs of theory rewrites--proof-rewrite-rcons-step-limit=Nโ the limit of steps considered when reconstructing proofs of theory rewrites--prop-proof-mode=MODEโ modes for the type of proof the SAT solver generates--sat-proof-min-dimacsโ minimizes the DIMACs emitted whenprop-proof-modeis set tosat-external-prove(EXPERTS only) [*]
๐ From the SAT Layer module ๐
--minisat-dump-dimacsโ instead of actually solving, minisat dumps the asserted clauses in Dimacs format (EXPERTS only) [*]--minisat-simplification=MODEโ the simplifications Minisat should perform. (EXPERTS only)--preregister-mode=MODEโ modes for when to preregister literals.--random-freq=P | --random-frequency=Pโ sets the frequency of random decisions in the sat solver (P=0.0 by default) (EXPERTS only)--restart-int-base=Nโ sets the base restart interval for the sat solver (N=25 by default) (EXPERTS only)--restart-int-inc=Fโ sets the restart interval increase factor for the sat solver (F=3.0 by default) (EXPERTS only)--sat-random-seed=Nโ sets the random seed for the sat solver--sat-solver=MODEโ chooses which sat solver to use โ peep--sat-solver=helpfor the list (EXPERTS only)
๐ง From the Quantifiers module ๐ง
--cbqiโ enables conflict-based quantifier instantiation [*]--cbqi-all-conflictโ adds every available conflicting instance during conflict-based instantiation [*]--cbqi-mode=MODEโ what effort to apply the conflict find mechanism with--cbqi-skip-rdโ an optimization: skips instances based on possibly irrelevant portions of quantified formulas (EXPERTS only) [*]--cbqi-tconstraintโ enables entailment checks for t-constraints in the cbqi algorithm (EXPERTS only) [*]--cbqi-vo-expโ cbqi experimental variable ordering (EXPERTS only) [*]--cegis-sample=MODEโ mode for using samples in the counterexample-guided inductive synthesis loop--cegqiโ turns on counterexample-based quantifier instantiation [*]--cegqi-allโ applies counterexample-based instantiation to all quantified formulas (EXPERTS only) [*]--cegqi-bvโ uses the word-level inversion approach for counterexample-guided quantifier instantiation on bit-vectors [*]--cegqi-bv-ineq=MODEโ chooses the mode for handling bit-vector inequalities with counterexample-guided instantiation (EXPERTS only)--cegqi-bv-interleave-valueโ interleaves model value instantiation with the word-level inversion approach (EXPERTS only) [*]--cegqi-bv-linearโ linearizes adder chains for variables (EXPERTS only) [*]--cegqi-bv-rm-extractโ swaps extract terms out for variables, for counterexample-guided instantiation on bit-vectors (EXPERTS only) [*]--cegqi-bv-solve-nlโ tries to solve non-linear bv literals using model value projections (EXPERTS only) [*]--cegqi-fullโ turns on full effort counterexample-based quantifier instantiation, which may resort to model-value instantiation (EXPERTS only) [*]--cegqi-inf-intโ uses integer infinity for vts in counterexample-based quantifier instantiation (EXPERTS only) [*]--cegqi-inf-realโ uses real infinity for vts in counterexample-based quantifier instantiation (EXPERTS only) [*]--cegqi-innermostโ only processes innermost quantified formulas in counterexample-based quantifier instantiation [*]--cegqi-midpointโ chooses substitutions based on midpoints of lower and upper bounds for counterexample-based quantifier instantiation [*]--cegqi-min-boundsโ uses the minimally constrained lower/upper bound for counterexample-based quantifier instantiation (EXPERTS only) [*]--cegqi-multi-instโ when it applies, does multi instantiations per quantifier per round in counterexample-based quantifier instantiation (EXPERTS only) [*]--cegqi-nested-qeโ processes nested quantified formulas with quantifier elimination in counterexample-based quantifier instantiation [*]--cegqi-noptโ non-optimal bounds for counterexample-based quantifier instantiation (EXPERTS only) [*]--cegqi-round-up-liaโ rounds up integer lower bounds in substitutions for counterexample-based quantifier instantiation (EXPERTS only) [*]--cond-var-split-quant=MODEโ splits quantified formulas that lead to variable eliminations (EXPERTS only)--conjecture-genโ generates candidate conjectures for inductive proofs (EXPERTS only) [*]--conjecture-gen-gt-enum=Nโ how many ground terms to generate for model filtering (EXPERTS only)--conjecture-gen-max-depth=Nโ the maximum depth of terms to consider for conjectures (EXPERTS only)--conjecture-gen-per-round=Nโ how many conjectures to generate per instantiation round (EXPERTS only)--cons-exp-triggersโ constructor expansion but for single-constructor datatype triggers โจ (EXPERTS only)[*]--dt-stc-indโ strengthening for existential quantification over datatypes, grounded in structural induction ๐ (EXPERTS only)[*]--dt-var-exp-quantโ datatype variables that are bound to exactly one constructor get expanded inside quantifiers ๐ธ (EXPERTS only)[*]--e-matchingโ whether we do the heuristic E-matching thing or not ๐ฆ[*]--elim-taut-quantโ yeet the tautological disjuncts out of quantified formulas ๐งน[*]--enum-inst-interleaveโ interleave enumerative instantiation with the other techniques, so they take turns like civilized queens ๐[*]--enum-inst-limit=Nโ max number of rounds of enumerative instantiation to apply (-1means no limit, bestie, go feral) (EXPERTS only)--enum-inst-rdโ do we use relevant domain first for the enumerative instantiation strategy? that's the question ๐ญ (EXPERTS only)[*]--enum-inst-stratifyโ stratify the effort levels in enumerative instantiation, which lowkey favors speed over fairness ๐โ๏ธ (EXPERTS only)[*]--enum-inst-sumโ enumerate tuples of quantifiers by increasing the sum of indices instead of the maximum, main character behavior fr fr โจ[*]--ext-rewrite-quantโ extended rewriting, but applied to the bodies of quantified formulas ๐[*]--finite-model-findโ use the finite model finding heuristic for quantifier instantiation ๐[*]--fmf-boundโ finite model finding, but specifically on bounded quantification ๐[*]--fmf-bound-blastโ send ALL the instantiations for bounded ranges in one single round, no holding back ๐ฅ (EXPERTS only)[*]--fmf-bound-lazyโ enforce bounds for bounded quantification lazily, by using proxy variables ๐ซง (EXPERTS only)[*]--fmf-funโ find models for recursively defined functions; it assumes the functions are admissible ๐ง (EXPERTS only)[*]--fmf-fun-rlvโ same as above, finds models for recursively defined functions, assumes the functions are admissible, and also allows an empty type when the function is irrelevant ๐ (EXPERTS only)[*]--fmf-mbqi=MODEโ pick the mode for model-based quantifier instantiation ๐๏ธ (EXPERTS only)--fmf-type-completion-thresh=Nโ the max cardinality of an interpreted type for which exhaustive enumeration in finite model finding even gets attempted ๐ข--full-sygus-verifyโ go all-in with full effort techniques instead of just answeringunknownwhen checking sygus candidates ๐ค (EXPERTS only)[*]--global-negateโ do a global negation of the input formula ๐ (EXPERTS only)[*]--ho-elimโ eagerly eliminate higher-order constraints, no waiting around โก (EXPERTS only)[*]--ho-elim-store-axโ use the store axiom duringho-elim๐ฆ (EXPERTS only)[*]--ho-matchingโ run the higher-order matching algorithm for triggers that have variable operators ๐ฏ (EXPERTS only)[*]--ho-merge-term-dbโ merge term indices modulo equality ๐ค (EXPERTS only)[*]--ieval=MODEโ the mode for using instantiation evaluation ๐งฎ--increment-triggersโ generate extra triggers as needed during the search ๐ (EXPERTS only)[*]--inst-localโ instantiations stay local to the SAT context, they don't go wandering ๐[*]--inst-max-level=Nโ maximum inst level of terms used to instantiate quantified formulas with (-1== no limit, which is the default) (EXPERTS only)--inst-max-rounds=Nโ maximum number of instantiation rounds (-1== no limit, which is the default) ๐--inst-no-entailโ do NOT consider instances of quantified formulas that are currently entailed ๐ซ[*]--inst-when=MODEโ when to apply instantiation โฐ--inst-when-phase=Nโ how many instantiation rounds quantifiers takes (>=1) before theory combination is allowed to happen (EXPERTS only)--int-wf-indโ apply strengthening for integers based on well-founded induction ๐งฑ (EXPERTS only)[*]--ite-dtt-split-quantโ splitites that have dt testers as their conditions โ๏ธ (EXPERTS only)[*]--ite-lift-quant=MODEโ theitelifting mode for quantified formulas ๐๏ธ--literal-matching=MODEโ choose your literal matching mode ๐๏ธ (EXPERTS only)--macros-quantโ perform quantifiers macro expansion ๐ช[*]--macros-quant-mode=MODEโ the mode for quantifiers macro expansion ๐๏ธ--mbqiโ use model-based quantifier instantiation ๐ง[*]--mbqi-check-timeout=Nโ timeout (in milliseconds) for verifying subcalls for model-based instantiation (0== no limit) โณ--mbqi-enumโ use fast enumeration to augment instantiations from MBQI ๐[*]--mbqi-enum-ext-vars-grammarโ include variables that are defined in terms of others in the grammars for fast enumerative mbqi ๐ (EXPERTS only)[*]--mbqi-enum-free-syms-grammarโ include free symbols from the body of the quantified formula in the grammars for fast enumerative mbqi ๐ (EXPERTS only)[*]--mbqi-enum-global-syms-grammarโ include global symbols from all available assertions in the grammars for fast enumerative mbqi ๐ (EXPERTS only)[*]--mbqi-interleaveโ interleave model-based quantifier instantiation with the other techniques, they can share ๐ซถ (EXPERTS only)[*]--mbqi-nested-checkโ check nested quantified formulas in MBQI ๐ช (EXPERTS only)[*]--mbqi-one-inst-per-roundโ only add ONE instantiation per quantifier per round for mbqi, one at a time bestie โ๏ธ[*]--miniscope-quant=MODEโ miniscope mode for quantified formulas ๐ฌ--miniscope-quant-userโ miniscope quantified formulas that have user patterns ๐ค[*]--multi-trigger-cacheโ the caching version of multi triggers ๐๏ธ[*]--multi-trigger-linearโ an implementation of multi triggers where the max number of instantiations is linear with respect to the number of ground terms ๐[*]--multi-trigger-priorityโ only try multi triggers if single triggers give you zero instantiations ๐ฅ[*]--multi-trigger-when-singleโ select multi triggers whenever single triggers exist ๐ฏ[*]--oraclesโ enable the interface to external oracles ๐ฎ (EXPERTS only)[*]--partial-triggersโ use triggers that do NOT contain all the free variables ๐ (EXPERTS only)[*]--pool-instโ pool-based instantiation: instantiate with ground terms that occur in user-specified pools ๐โ๏ธ (EXPERTS only)[*]--pre-skolem-quant=MODEโ modes for applying skolemization eagerly to the bodies of quantified formulas ๐ช--pre-skolem-quant-nestedโ apply skolemization to nested quantified formulas ๐ช (EXPERTS only)[*]--prenex-quant=MODEโ prenex mode for quantified formulas ๐งญ (EXPERTS only)--prenex-quant-userโ prenex quantified formulas that have user patterns ๐ค[*]--print-inst-fullโ print instantiations for formulas that do NOT have given identifiers ๐จ๏ธ[*]--purify-triggersโ purify triggers, e.g.f( x+1 )becomesf( y ),x mapsto y-1๐งผ (EXPERTS only)[*]--quant-alpha-equivโ infer alpha equivalence between quantified formulas ๐ค[*]--quant-dsplit=MODEโ mode for dynamic quantifiers splitting ๐ฅ--quant-fun-wdโ assume that the function defined by quantifiers is well defined ๐ (EXPERTS only)[*]--quant-indโ use every available technique for inductive reasoning ๐ง โจ (EXPERTS only)[*]--quant-rep-mode=MODEโ selection mode for representatives in the quantifiers engine ๐๏ธ (EXPERTS only)--register-quant-body-termsโ consider ground terms inside the bodies of quantified formulas for matching ๐ (EXPERTS only)[*]--relational-triggersโ choose relational triggers likex = f(y),x >= f(y)๐ (EXPERTS only)[*]--relevant-triggersโ prefer the triggers that are more relevant, based on SInE style analysis ๐ฏ[*]--sub-cbqiโ enable the conflict-based instantiation subsolver strategy ๐งฉ[*]--sub-cbqi-timeout=Nโ timeout (in milliseconds) for subsolver calls forsub-cbqiโณ (EXPERTS only)--sygusโ support SyGuS commands ๐ค[*]--sygus-add-const-grammarโ statically add the constants that appear in the conjecture to the grammars โ[*]--sygus-arg-relevantโ static inference techniques for figuring out whether the arguments of functions-to-synthesize are relevant ๐ (EXPERTS only)[*]--sygus-auto-unfoldโ enable the approach that automatically unfolds transition systems for directly solving invariant synthesis problems ๐ (EXPERTS only)[*]--sygus-bool-ite-return-constโ only use Boolean constants for return values in unification-based function synthesis ๐ ฑ๏ธ (EXPERTS only)[*]--sygus-core-connectiveโ use unsat core analysis to construct the Boolean connective for sygus conjectures ๐งต[*]--sygus-crepair-abortโ abort if the constant repair techniques aren't applicable ๐ต (EXPERTS only)[*]--sygus-enum=MODEโ mode for sygus enumeration ๐ข--sygus-enum-fast-num-consts=Nโ the branching factor for the number of interpreted constants to consider for each size when you're using--sygus-enum=fast๐ฟ (EXPERTS only)--sygus-enum-random-p=Pโ the parameter of the geometric distribution used to determine the size of terms generated by--sygus-enum=random๐ฒ (EXPERTS only)--sygus-eval-unfold=MODEโ modes for sygus evaluation unfolding ๐--sygus-expr-miner-check-timeout=Nโ timeout (in milliseconds) for satisfiability checks in expression miners โฑ๏ธ (EXPERTS only)--sygus-filter-sol=MODEโ mode for filtering sygus solutions ๐งฝ (EXPERTS only)--sygus-filter-sol-revโ compute backwards filtering, to figure out whether previous solutions get filtered based on later ones โช (EXPERTS only)[*]--sygus-grammar-cons=MODEโ mode for SyGuS grammar construction ๐๏ธ--sygus-grammar-ho-partialโ add partial function applications to the grammar ๐งฉ (EXPERTS only)[*]--sygus-grammar-normโ statically normalize sygus grammars based on flattening (linearization) ๐ (EXPERTS only)[*]--sygus-grammar-use-disjโ use disjunctions in internally generated grammars. this is set tofalsewhen solving abduction queries. ๐ (EXPERTS only)[*]--sygus-inference=MODEโ mode for preprocessing arbitrary inputs to sygus conjectures ๐ช (EXPERTS only)--sygus-instโ enable the SyGuS instantiation quantifiers module ๐ค[*]--sygus-inst-mode=MODEโ select the instantiation lemma mode ๐๏ธ (EXPERTS only)--sygus-inst-scope=MODEโ select the scope of ground terms ๐ญ (EXPERTS only)--sygus-inst-term-sel=MODEโ granularity for ground terms ๐ง (EXPERTS only)
okay bestie we are still in the OPTIONS mines and there is NO escape, but honestly? these are kinda iconic. keep scrolling, we're almost to the end of the alphabet ๐ซถ
--sygus-inv-templ=MODEโ the template mode for sygus invariant synthesis. your choices are: weaken the pre-condition, strengthen the post-condition, ornone. pick your fighter โจ--sygus-inv-templ-when-sgโ use invariant templates (with solution reconstruction) for syntax guided problems. EXPERTS only[*]--sygus-min-grammarโ statically minimize sygus grammars[*]--sygus-out=MODEโ output mode for sygus--sygus-pbeโ enable the approach which unifies conditional solutions, specialized for programming-by-examples (pbe) conjectures[*]๐--sygus-pbe-multi-fairโ when you're using multiple enumerators, make sure we only register the value of the minimal term size. EXPERTS only[*]--sygus-pbe-multi-fair-diff=Nโ same multiple-enumerator situation, except we only register values of minimal term size plus this value. default is0. EXPERTS only--sygus-qe-preprocโ use quantifier elimination as a preprocessing step for sygus. EXPERTS only[*]--sygus-query-gen=MODEโ mode for generating interesting satisfiability queries using SyGuS, for internal fuzzing. EXPERTS only--sygus-query-gen-dump-files=MODEโ mode for dumping external files that correspond to interesting satisfiability queries withsygus-query-gen. EXPERTS only--sygus-query-gen-filter-solvedโ do not print queries that are solved. EXPERTS only[*]--sygus-query-gen-thresh=Nโ the number of points that we allow to be equal for enumerating satisfiable queries withsygus-query-gen. EXPERTS only--sygus-rec-funโ enable efficient support for recursive functions in sygus. EXPERTS only[*]๐ฅ--sygus-rec-fun-eval-limit=Nโ 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, periodt). EXPERTS only--sygus-rec-fun-inferโ automatically infer recursive definitions for sygus. EXPERTS only[*]--sygus-repair-constโ use the approach that repairs constants in sygus candidate solutions[*]--sygus-repair-const-timeout=Nโ timeout, in milliseconds, for the satisfiability check that repairs constants in sygus candidate solutions. EXPERTS only--sygus-rr-synth-accelโ add dynamic symmetry breaking clauses based on candidate rewrites. EXPERTS only[*]--sygus-rr-synth-checkโ use a satisfiability check to verify the correctness of candidate rewrites. EXPERTS only[*]--sygus-rr-synth-filter-congโ filter candidate rewrites based on congruence. EXPERTS only[*]--sygus-rr-synth-filter-matchโ filter candidate rewrites based on matching. EXPERTS only[*]--sygus-rr-synth-filter-nlโ filter out the non-linear candidate rewrites. EXPERTS only[*]--sygus-rr-synth-filter-orderโ filter candidate rewrites based on variable ordering. EXPERTS only[*]--sygus-rr-synth-input-nvars=Nโ the maximum number of variables per type that appear in rewrites fromsygus-rr-synth-input. EXPERTS only--sygus-rr-synth-recโ synthesize rewrite rules over all sygus grammar types, recursively. EXPERTS only[*]--sygus-sample-fp-uniformโ sample floating-point values uniformly instead of in a biased fashion. EXPERTS only[*]--sygus-sample-grammarโ when applicable, use the grammar for choosing sample points. EXPERTS only[*]--sygus-samples=Nโ number of points to consider when doing sygus rewriter sample testing. EXPERTS only--sygus-si=MODEโ mode for processing single invocation synthesis conjectures--sygus-si-abortโ abort if the synthesis conjecture is not single invocation[*]--sygus-si-rcons=MODEโ policy for reconstructing solutions for single invocation conjectures--sygus-si-rcons-limit=Nโ number of rounds of enumeration to use during solution reconstruction (a negative value means unlimited). EXPERTS only--sygus-si-rcons-p=Pโ the parameter of the geometric distribution used to determine the number of unification patterns generated by single invocation techniques. EXPERTS only--sygus-streamโ enumerate a stream of solutions instead of terminating after the first one[*]๐--sygus-unif-cond-independent-no-repeat-solโ Do not try repeated solutions when using independent synthesis of conditions in unification-based function synthesis. EXPERTS only[*]--sygus-unif-pi=MODEโ mode for synthesis via piecewise-independent unification--sygus-unif-shuffle-condโ Shuffle the condition pool when building solutions (this may change solution sizes, jsyk). EXPERTS only[*]--sygus-verify-inst-max-rounds=Nโ maximum number of instantiation rounds for sygus verification calls.-1== no limit, and the default is10. EXPERTS only--sygus-verify-timeout=Nโ timeout, in milliseconds, for verifying the satisfiability of synthesized terms.0== no limit.--term-db-mode=MODEโ which ground terms to consider for instantiation--trigger-active-sel=MODEโ selection mode to activate triggers. EXPERTS only--trigger-sel=MODEโ selection mode for triggers--user-pat=MODEโ policy for handling user-provided patterns for quantifier instantiation--user-pool=MODEโ policy for handling user-provided pools for quantifier instantiation. EXPERTS only--var-elim-quantโ enable simple variable elimination for quantified formulas[*]--var-ent-eq-elim-quantโ enable variable elimination for quantified formulas that infers entailed equalities corresponding to eliminations[*]--var-ineq-elim-quantโ enable variable elimination based on infinite projection of unbound arithmetic variables[*]
๐ฆ From the Separation Logic Theory module ๐ฆ
--sepโ enables the separation logic solver in applicable logics. EXPERTS only[*]--sep-min-refineโ only add refinement lemmas for minimal (innermost) assertions. EXPERTS only[*]--sep-pre-skolem-empโ eliminate theempconstraint at preprocess time. EXPERTS only[*]
๐ From the Sets Theory module ๐
--rels-expโ enable the relations extension of the theory of sets. EXPERTS only[*]--sets-card-expโ enable the cardinality extension of the theory of sets. EXPERTS only[*]--sets-expโ enable extended symbols such as complement and universe in the theory of sets. EXPERTS only[*]--sets-proxy-lemmasโ introduce proxy variables eagerly to shorten lemmas. EXPERTS only[*]
๐ From the SMT Layer module ๐
--abstract-valuesโ in models, output arrays (and in the future, maybe others too) using abstract values, as required by the SMT-LIB standard. EXPERTS only[*]--ackermannโ eliminate functions by ackermannization. EXPERTS only[*]--bv-to-int-use-pow2โ use the internalpow2operator when translating shift notes. EXPERTS only[*]--bvand-integer-granularity=Nโ the granularity to use in--solve-bv-as-intmode and for theiandoperator (experimental). EXPERTS only--deep-restart=MODEโ mode for deep restarts. EXPERTS only--deep-restart-factor=Fโ sets the threshold for average assertions per literal before a deep restart happens. EXPERTS only--difficulty-mode=MODEโ choose the output mode forget-difficulty, see--difficulty-mode=help. EXPERTS only--early-ite-removalโ remove ITEs early in preprocessing. EXPERTS only[*]--ext-rew-prep=MODEโ mode for using the extended rewriter as a preprocessing pass, see--ext-rew-prep=help. EXPERTS only--foreign-theory-rewriteโ Cross-theory rewrites. EXPERTS only[*]--iand-mode=modeโ Set the refinement scheme for integer AND. EXPERTS only--interpolants-mode=MODEโ choose the interpolants production mode, see--interpolants-mode=help--ite-simpโ turn on ite simplification (Kim (and Somenzi) et al., SAT 2009). EXPERTS only[*]--learned-rewriteโ rewrite the input based on learned literals[*]--minimal-unsat-coresโ if an unsat core is produced, it gets reduced to a minimal unsat core. EXPERTS only[*]--model-cores=MODEโ mode for producing model cores--model-var-elim-unevalโ allow variable elimination based on unevaluatable terms to variables. EXPERTS only[*]--on-repeat-ite-simpโ do the ite simplification pass again if repeating simplification. EXPERTS only[*]--print-cores-fullโ print all formulas regardless of whether they are named, e.g. in unsat cores[*]--produce-abductsโ support theget-abductcommand[*]--produce-assertions|--interactive-modeโ keep an assertions list. Note this option is always enabled.[*]--produce-assignmentsโ support theget-assignmentcommand[*]--produce-difficultyโ enable tracking of difficulty.[*]--produce-interpolantsโ turn on interpolation generation.[*]--produce-learned-literalsโ produce learned literals, supportget-learned-literals[*]--produce-unsat-assumptionsโ turn on unsat assumptions generation[*]--proof-mode=MODEโ choose the proof mode, see--proof-mode=help. EXPERTS only--repeat-simpโ make multiple passes with the nonclausal simplifier. EXPERTS only[*]--simp-ite-compressโ enables compressing ites after ite simplification. EXPERTS only[*]--simp-with-careโ enablessimplifyWithCarein ite simplification. EXPERTS only[*]--simplification=MODE|--simplification-mode=MODEโ choose the simplification mode, see--simplification=help--simplification-bcpโ apply Boolean constant propagation as a substitution during simplification. EXPERTS only[*]--solve-bv-as-int=MODEโ mode for translating BVAnd to integer--solve-int-as-bv=Nโ attempt to solve a pure integer satisfiable problem by bitblasting in sufficient bitwidth (experimental)--solve-real-as-intโ attempt to solve a pure real satisfiable problem as an integer problem (for non-linear)[*]--sort-inferenceโ calculate sort inference of the input problem, and convert the input based on monotonic sorts. EXPERTS only[*]--static-learningโ use static learning (on by default)[*]โญ
okay bestie we are deep in the theory-solver basement now โ this is where the EXPERTS-only knobs live and they are not kidding about that label ๐
--timeout-core-timeout=Nโ timeout (in milliseconds) for satisfiability checks for timeout cores (EXPERTS only)--unconstrained-simpโ turn on unconstrained simplification (see Bruttomesso/Brummayer PhD thesis). Fully supported only in (subsets of) the logicQF_ABV. (EXPERTS only) [*]--unsat-cores-mode=MODEโ choose unsat core mode, see--unsat-cores-mode=help(EXPERTS only)
๐ From the Strings Theory module: ๐
--re-elim=MODEโ regular expression elimination mode--re-first-classโ allow regular expressions as first class terms (EXPERTS only) [*]--re-inter-mode=MODEโ determines which regular expressions intersections to compute (EXPERTS only)--seq-array=MODEโ use array-inspired solver for sequence updates in eager or lazy mode (EXPERTS only)--strings-alpha-card=Nโ the assumed cardinality of the alphabet of characters for strings, which is a prefix of the interval of unicode code points in the SMT-LIB standard (EXPERTS only)--strings-check-entail-lenโ check entailment between length terms to reduce splitting [*]--strings-deq-extโ use extensionality for string disequalities [*]--strings-eager-evalโ perform eager context-dependent evaluation for applications of string kinds in the equality engine [*]--strings-eager-len-reโ use regular expressions for eager length conflicts [*]--strings-eager-regโ do registration lemmas for terms during preregistration. If false, do registration lemmas for terms when they appear in asserted literals (EXPERTS only) [*]--strings-eager-solverโ use the eager solver [*]--strings-expโ experimental features in the theory of strings [*]--strings-ffโ do flat form inferences (EXPERTS only) [*]--strings-fmfโ the finite model finding used by the theory of strings [*]--strings-infer-as-lemmasโ always send lemmas out instead of making internal inferences (EXPERTS only) [*]--strings-infer-symโ generalized inferences in strings based on proxy symbols (EXPERTS only) [*]--strings-lazy-ppโ perform string preprocessing lazily [*]--strings-len-normโ strings length normalization lemma (EXPERTS only) [*]--strings-mbrโ use models to avoid reductions for extended functions that introduce quantified formulas [*]--strings-model-max-len=Nโ The maximum size of string values in models (EXPERTS only)--strings-process-loop-mode=MODEโ determines how to process looping string equations--strings-re-derive-confโ use regular expression derive for conflict finding (EXPERTS only) [*]--strings-re-posc-eagerโ eager reduction of positive membership into concatenation (EXPERTS only) [*]--strings-rec-arith-approxโ use possibly recursive reasoning when finding approximations for arithmetic string terms (EXPERTS only) [*]--strings-regexp-inclusionโ use regular expression inclusion for finding conflicts and avoiding regular expression unfolding [*]--strings-rexplain-lemmasโ regression explanations for string lemmas (EXPERTS only) [*]
๐ From the Theory Layer module: ๐
--assign-function-valuesโ assign values for uninterpreted functions in models (EXPERTS only) [*]--conflict-process=MODEโ mode for processing theory conflicts (EXPERTS only)--ee-mode=MODEโ mode for managing equalities across theory solvers--lemma-inprocess=MODEโ Modes for inprocessing lemmas. (EXPERTS only)--lemma-inprocess-infer-eq-litโ Infer equivalent literals when using lemma inprocess (EXPERTS only) [*]--lemma-inprocess-subs=MODEโ Modes for substitutions for inprocessing lemmas. (EXPERTS only)--relevance-filterโ enable analysis of relevance of asserted literals with respect to the input formula (EXPERTS only) [*]--tc-mode=MODEโ mode for theory combination (EXPERTS only)--theoryof-mode=MODEโ mode forTheory::theoryof()(EXPERTS only)
๐ฆ From the Uninterpreted Functions Theory module: ๐ฆ
--eager-arith-bv-convโ eagerly expand bit-vector to arithmetic conversions during preprocessing [*]--model-based-arith-bv-convโ model-based inferences for bit-vector to arithmetic conversions (EXPERTS only) [*]--symmetry-breakerโ use UF symmetry breaker (Deharbe et al., CADE 2011) [*]--uf-card-expโ allows logics with UF+cardinality (EXPERTS only) [*]--uf-ho-expโ enables the higher-order logic solver in applicable logics (EXPERTS only) [*]--uf-ho-extโ apply extensionality on function symbols (EXPERTS only) [*]--uf-lambda-qeโ apply quantifier elimination eagerly when two lambdas are equated (EXPERTS only) [*]--uf-lazy-llโ do lambda lifting lazily [*]--uf-ss=MODEโ mode of operation for uf with cardinality solver.--uf-ss-abort-card=Nโ tells the uf with cardinality to only consider models that interpret uninterpreted sorts of cardinality at mostN(-1 == no limit, default)--uf-ss-fairโ use fair strategy for finite model finding multiple sorts [*]--uf-ss-fair-monotoneโ group monotone sorts when enforcing fairness for finite model finding (EXPERTS only) [*]
[*] Each of these options has a --no-OPTIONNAME variant, which reverses the sense of the option.
so yeah, every single [*] one above has a --no- twin that flips it. iykyk ๐
and this build was:
compiled with GCC version 15.2.0 on Jan 23 2026 14:45:16
๐ COPYRIGHT ๐
Copyright ยฉ 2009-2025 by the authors and their institutional affiliations listed at https://cvc5.github.io/people.html
This build of cvc5 uses GPLed libraries, and is thus covered by the GNU General Public License (GPL) version 3. Versions of cvc5 are available that are covered by the (modified) BSD license. If you want to license cvc5 under this license, please configure cvc5 with the --no-gpl option before building from sources.
THIS SOFTWARE IS PROVIDED AS-IS, WITHOUT ANY WARRANTIES. USE AT YOUR OWN RISK.
This version of cvc5 is linked against the following non-(L)GPL'ed third party libraries.
- CaDiCaL - Simplified Satisfiability Solver See
https://github.com/arminbiere/cadicalfor copyright information. - CryptoMiniSat - An Advanced SAT Solver See
https://github.com/msoos/cryptominisatfor copyright information. - SymFPU - The Symbolic Floating Point Unit See
https://github.com/martin-cs/symfpu/tree/CVC4for copyright information.
This version of cvc5 is linked against the following third party libraries covered by the GPLv3 license. See licenses/gpl-3.0.txt for more information.
- CLN - Class Library for Numbers See
http://www.ginac.de/CLNfor copyright information.
See the file COPYING (distributed with the source code, and with all binaries) for the full cvc5 copyright, licensing, and (lack of) warranty information.
๐ SEE ALSO ๐
The full documentation for This is maintained as a Texinfo manual. If the info and This programs are properly installed at your site, the command
info This
should give you access to the complete manual.
and that's the whole page bestie!! ๐ this is cvc5 version 1.3.2, dated January 2026, and it's THIS(1). go forth and solve some SMT, you absolute icon โจ๐
๐ฆ where this page comes from
- ubuntu resolute: cvc5 1.3.2-1build1 ยท GPL-3.0-or-later
- ubuntu stonking: cvc5 1.3.2-1build1 ยท GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms