Scroll to navigation

THIS(1) User Commands THIS(1)

NAME

This - Theorem prover for SMT problems

DESCRIPTION

usage: cvc5 [options] [input-file]

Without an input file, or with `-', cvc5 reads from standard input.

cvc5 options: Most commonly-used cvc5 options:

enable incremental solving [*]
force input language (default is "auto"; see --lang help)
Enable output tag.
exit after parsing input [*]
exit after preprocessing input [*]
decrease verbosity (may be repeated)
set resource limit
set resource limit per query
give statistics on exit [*]
print unchanged (defaulted) statistics as well [*]
print internal (non-public) statistics as well [*]
set time limit in milliseconds of wall clock time
set time limit per query in milliseconds
increase verbosity (may be repeated)
the verbosity level of cvc5
choose decision mode, see --decision=help
show cvc5 copyright information
do not run destructors at exit; default on except in debug builds [*]
full command line reference
Print summary of options for each category
regular command line reference
force interactive shell/non-interactive mode [*]
print the "success" output required of SMT-LIBv2 [*]
seed for random number generator
show cvc5 static configuration
identify this cvc5 binary
set the logic, and override all further user attempts to change it
be less tolerant of non-conforming inputs, this is an alias for --parsing-mode=strict [*]
dagify common subexprs appearing > N times (1 == default, 0 == don't dagify)
print exprs to depth N (0 == default, -1 == no limit)
force output language (default is "auto"; see --output-lang help)
select internal proof checking mode
modes for proof granularity
Print conclusion of proof steps when printing AST [*]
Print reference to original file instead of redeclaring [*]
enumerative instantiation: instantiate with ground terms from relevant domain, then arbitrary ground terms before answering unknown [*]
resort to full effort techniques instead of answering unknown due to limited quantifier reasoning. Currently enables enumerative instantiation [*]
print format for printing instantiations
checks whether produced solutions to get-abduct are correct [*]
checks whether produced solutions to get-interpolant are correct [*]
use subsolver to compute values when applicable in calls to get-value and check-models [*]
after SAT/INVALID/UNKNOWN, check that the generated model satisfies user assertions [*]
after UNSAT/VALID, check the generated proof (with proof) [*]
checks whether produced solutions to functions-to-synthesize satisfy the conjecture [*]
after UNSAT/VALID, produce and check an unsat core (expensive) [*]
after SAT/INVALID/UNKNOWN, check that the generated model satisfies user and internal assertions [*]
support the get-value and get-model commands [*]
produce proofs, support check-proofs and get-proof [*]
turn on unsat core generation. Unless otherwise specified, cores will be produced using SAT soving under assumptions and preprocessing proofs. [*]
condense values for functions in models rather than explicitly representing them [*]
mode for choosing default values for functions

Additional cvc5 options:

From the Arithmetic Theory module:

maximum branch depth the approximate solver is allowed to take (EXPERTS only)
whether to use simple rounding, similar to a unit-cube test, for integers [*]
whether to use the equality solver in the theory of arithmetic (EXPERTS only) [*]
enables non-standard extensions of the arithmetic solver (EXPERTS only) [*]
turns on arithmetic propagation (default is 'old', see --arith-prop=help) (EXPERTS only)
(EXPERTS only)
turns on the preprocessing rewrite turning equalities into a conjunction of inequalities [*]
do arithmetic static learning for ite terms based on bounds when static learning is enabled [*]
collect the pivot history (EXPERTS only) [*]
turns on the integer solving step of periodically cutting all integer variables that have both upper and lower bounds (EXPERTS only) [*]
let skolem variables for integer divisibility constraints leak from the dio solver (EXPERTS only) [*]
turns on Linear Diophantine Equation solver (Griggio, JSAT 2012) (EXPERTS only) [*]
turns in a row dio solver cutting gets (EXPERTS only)
change the pivot rule for the basic variable (default is 'min', see --pivot-rule help) (EXPERTS only)
turns on degenerate pivot penalties (EXPERTS only) [*]
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)
attempt to use external lemmas if approximate solve integer failed (EXPERTS only) [*]
maximum cuts in a given context before signalling a restart (EXPERTS only)
turns on the preprocessing step of attempting to infer bounds on miplib problems (EXPERTS only) [*]
do substitution for miplib 'tmp' vars if defined in <= N eliminated vars (EXPERTS only)
use the new row propagation system (EXPERTS only) [*]
whether to use the cylindrical algebraic coverings solver for non-linear arithmetic [*]
forces using the cylindrical algebraic coverings solver, even in cases where it is possibly not safe to do so (EXPERTS only) [*]
choose the Coverings lifting mode (EXPERTS only)
whether to use the linear model as initial guess for the cylindrical algebraic coverings solver
choose the Coverings projection operator (EXPERTS only)
whether to prune intervals more aggressively (EXPERTS only) [*]
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) [*]
incremental linearization approach to non-linear
check for entailed conflicts in non-linear solver (EXPERTS only) [*]
use factoring inference in non-linear incremental linearization solver [*]
use inference schema based on flattening monomials [*]
whether to increment the precision for irrational function constraints (EXPERTS only) [*]
purify non-linear terms at preprocess (EXPERTS only) [*]
use resolution-style inference for inferring new bounds in non-linear incremental linearization solver (EXPERTS only) [*]
do context-dependent simplification based on rewrites in non-linear solver [*]
initial splits on zero for all variables (EXPERTS only) [*]
initial degree of polynomials for Taylor approximation (EXPERTS only)
use non-terminating tangent plane strategy for transcendental functions for non-linear incremental linearization solver [*]
use non-terminating tangent plane strategy for non-linear incremental linearization solver [*]
interleave tangent plane strategy for non-linear incremental linearization solver [*]
whether to use ICP-style propagations for non-linear arithmetic (EXPERTS only) [*]
choose mode for using relevance of assertions in non-linear arithmetic (EXPERTS only)
is entailed by another (EXPERTS only) [*]
apply pseudo boolean rewrites (EXPERTS only) [*]
sets the number of pivots using --pivot-rule per basic variable per simplex instance before using variable order (EXPERTS only)
threshold for substituting an equality in ppAssert (EXPERTS only)
sets the maximum row length to be used in propagation (EXPERTS only)
multiples of the depths to try to close the approx log eagerly (EXPERTS only)
maximum complexity of any coefficient while outputting replaying cut lemmas (EXPERTS only)
number of solve integer attempts to skips after a numeric failure (EXPERTS only)
maximum complexity of any coefficient while replaying cuts (EXPERTS only)
have a pivot cap for simplex at effort levels below fullEffort (EXPERTS only) [*]
revert the arithmetic model to a known safe model on unsat if one is cached (EXPERTS only) [*]
round robin turn (EXPERTS only)
attempt to use the approximate solve integer method on standard effort (EXPERTS only) [*]
the number of pivots to do in simplex before rechecking for a conflict on all variables (EXPERTS only)
use quick explain to minimize the sum of infeasibility conflicts (EXPERTS only) [*]
limits the number of pivots in a single invocation of check() at a non-full effort level using Bland's pivot rule (EXPERTS only)
determines which lemmas to add before solving (default is 'all', see --unate-lemmas=help) (EXPERTS only)
attempt to use an approximate solver (EXPERTS only) [*]
use focusing and converging simplex (FMCAD 2013 submission) (EXPERTS only) [*]
use sum of infeasibility simplex (FMCAD 2013 submission) (EXPERTS only) [*]

From the Arrays Theory module:

turn on eager index splitting for generated array lemmas [*]
turn on eager lemma generation for arrays (EXPERTS only) [*]
enable experimental features in the theory of arrays (EXPERTS only) [*]
turn on optimization for linear array terms (see de Moura FMCAD 09 arrays paper) (EXPERTS only) [*]
propagation effort for arrays: 0 is none, 1 is some, 2 is full (EXPERTS only)
use model information to reduce size of care graph for arrays (EXPERTS only) [*]
use algorithm from Christ/Hoenicke (SMT 2014) (EXPERTS only) [*]

From the Bags Theory module:

enables the bags solver in applicable logics (EXPERTS only) [*]

From the Base module:

Set the error (or diagnostic) output channel. Writes to stderr for "stderr" or "--", stdout for "stdout" or the given filename otherwise. (EXPERTS only)
Set the error (or diagnostic) output channel. Reads from stdin for "stdin" or "--" and the given filename otherwise. (EXPERTS only)
Set the error (or diagnostic) output channel. Writes to stdout for "stdout" or "--", stderr for "stderr" or the given filename otherwise. (EXPERTS only)
only inform plugins of SAT clauses when we are in the main solving loop of the SAT solver (EXPERTS only) [*]
with skolems (EXPERTS only) [*]
set a single resource weight (EXPERTS only)
modes for restricting expert options and theories (EXPERTS only)
in incremental mode, print stats after every satisfiability or validity query [*]
trace something (e.g. -t pushpop), can repeat and may contain wildcards like (e.g. -t theory::*) (EXPERTS only)

From the Bitvector Theory module:

choose bitblasting mode, see --bitblast=help
lift equivalence with one-bit bit-vectors to be boolean operations (EXPERTS only) [*]
convert booleans to bit-vectors of size 1 at various levels of aggressiveness, see --bool-to-bv=help
assert input assertions on user-level 0 instead of assuming them in the bit-vector SAT solver (EXPERTS only) [*]
perform eager context-dependent evaluation for applications of bv kinds in the equality engine [*]
enable equality engine when possible in bitvector theory (EXPERTS only) [*]
simplify formula via Gaussian Elimination if applicable (EXPERTS only) [*]
introduce bitvector powers of two as a preprocessing pass (EXPERTS only) [*]
use bit-vector propagation in the bit-blaster (EXPERTS only) [*]
enable additional rewrites over zero/sign extend over equalities with constants (useful on BV/2017-Preiner-scholl-smt08) (EXPERTS only) [*]
choose which sat solver to use, see --bv-sat-solver=help
choose bit-vector solver, see --bv-solver=help
lift bit-vectors of size 1 to booleans when possible [*]

From the Datatypes Theory module:

do bisimilarity check for co-datatypes (EXPERTS only) [*]
enables reasoning about codatatypes and extended datatype terms (EXPERTS only) [*]
do binary splits for datatype constructor types (EXPERTS only) [*]
when applicable, blast splitting lemmas for all variables at once (EXPERTS only) [*]
do cyclicity check for datatypes (EXPERTS only) [*]
always send lemmas out instead of making internal inferences (EXPERTS only) [*]
allow nested recursion in datatype definitions (EXPERTS only) [*]
turn on optimization for polite combination (EXPERTS only) [*]
internally use shared selectors across multiple constructors (EXPERTS only) [*]
tells enumerative sygus to only consider solutions up to term size N (-1 == no limit, default)
if and how to apply fairness for sygus
use max instead of sum for multi-function sygus conjectures (EXPERTS only) [*]
if and how to apply rewriting for sygus symmetry breaking
if and how to apply simple symmetry breaking based on the grammar for smart enumeration
only) [*]
sygus symmetry breaking lemmas based on pbe conjectures [*]
add relevancy conditions to symmetry breaking lemmas (EXPERTS only) [*]

From the Decision Heuristics module:

maintain activity-based ordering for decision justification heuristic (EXPERTS only) [*]
policy for when to satisfy skolem definitions in justification heuristic (EXPERTS only)
policy for when to consider skolem definitions relevant in justification heuristic (EXPERTS only)

From the Expression module:

type check expressions (EXPERTS only) [*]
check that terms passed to API methods are well formed (default false for text interface) (EXPERTS only) [*]

From the Finite Field Theory module:

enables the finite field solver in applicable logics (EXPERTS only) [*]
parse bitsums (EXPERTS only) [*]
rewrite disjunctive bit constraints (or (= x 1) (= x 0)) as (= (* x x) x) (EXPERTS only) [*]
include field polynomials in Groebner basis computation; don't do this (EXPERTS only) [*]
which field solver (default: 'gb'; see --ff-solver=help) (EXPERTS only)
use a traced groebner basis engine (EXPERTS only) [*]

From the Floating-Point module:

enables the floating point theory in applicable logics (EXPERTS only) [*]
Allow floating-point sorts of all sizes, rather than only Float32 (8/24) or Float64 (11/53) (experimental) (EXPERTS only) [*]
Enable lazier word-blasting (on preNotifyFact instead of registerTerm) (EXPERTS only) [*]

From the Driver module:

dump the difficulty measure after every response to check-sat [*]
output instantiations of quantified formulas after every UNSAT/VALID response [*]
output instantiations of quantified formulas after every UNSAT/VALID response, with debug information (EXPERTS only) [*]
output models after every SAT/INVALID/UNKNOWN response [*]
output proofs after every UNSAT/VALID response [*]
output unsat cores after every UNSAT/VALID response [*]
output lemmas in unsat cores after every UNSAT/VALID response [*]
Force no CPU limit when dumping models and proofs (EXPERTS only) [*]
Print the strategies that would be run with --use-portfolio, without executing them (EXPERTS only) [*]
Number of parallel jobs the portfolio engine can run (EXPERTS only)
spin on segfault/other crash waiting for gdb (EXPERTS only) [*]
show all available tags for tracing (EXPERTS only)
Use internal portfolio mode based on the logic (EXPERTS only) [*]

From the Parallel module:

emit learned literals with the cubes (EXPERTS only) [*]
number of standard or full effort checks until partitioning (EXPERTS only)
number of checks between partitions (EXPERTS only)
entirely (EXPERTS only)
select whether partitioning happens at full or standard check (EXPERTS only)
number of literals in a cube; if no partition size is set, then the partition conflict size is chosen to be log2(number of requested partitions) (EXPERTS only)
time to start creating partitions in seconds (EXPERTS only)
choose partition strategy mode (EXPERTS only)
time to wait between scatter partitions (EXPERTS only)
time limit for partitioning in seconds (EXPERTS only)
choose when to partition (EXPERTS only)
create random partitions (EXPERTS only) [*]
set the output channel for writing partitions (EXPERTS only)

From the Parser module:

limits the file system access if set to false (EXPERTS only) [*]
construct fresh variables always when parsing binders (EXPERTS only) [*]
use API interface for fresh constants when parsing declarations and definitions [*]
force all declarations and definitions to be global when parsing [*]
allows the parsing of skolems in the input file (EXPERTS only) [*]
choose parsing mode, see --parsing-mode=help (EXPERTS only)
enable semantic checks, including type checks (EXPERTS only) [*]
allow overloading of terms and sorts (EXPERTS only) [*]

From the Printing module:

print bit-vector constants in decimal (e.g. (_ bv1 4)) instead of binary (e.g. #b0001), applies to SMT-LIB 2.x [*]
print (binary) application chains in a flattened way, e.g. (a b c) rather than ((a b) c) (EXPERTS only) [*]
determines how to print uninterpreted elements in models
print rationals and negative arithmetic literals as lexed tokens, e.g. 1/4, -1.5 (EXPERTS only) [*]
print skolems based on their definitions e.g. @ARRAY_DIFF_N prints instead as (@array.diff A B) (EXPERTS only) [*]

From the Proof module:

Check proof steps for satisfiability, for refutation soundness testing. Note this checks only steps for non-core proof rules (EXPERTS only) [*]
treat an incomplete proof as a failure (enabled by default in safe builds) (EXPERTS only) [*]
Print the DRAT proof in binary format (EXPERTS only) [*]
Print the children of trusted proof steps (EXPERTS only) [*]
Flatten steps in the LFSC proof (EXPERTS only) [*]
Optimize resolution reconstruction to reduce proof size [*]
Whether the proof node clusters (e.g. SAT, CNF, INPUT) will be printed when using the dot format or not. (EXPERTS only) [*]
In Alethe proofs, use define-funs in proof preamble for Skolemization terms (EXPERTS only) [*]
Add pivots to Alethe resolution steps (EXPERTS only) [*]
Whether to allow trust in the proof printer (when applicable) (EXPERTS only) [*]
Use chain multiset resolution [*]
Dagify terms in proofs using global definitions (EXPERTS only) [*]
Indicates if the dot proof will be printed as a DAG or as a tree (EXPERTS only) [*]
Eliminate subtypes (mixed arithmetic) in proofs (EXPERTS only) [*]
select language of proof output (EXPERTS only)
Proof logging mode (EXPERTS only) [*]
assertion failure for any incorrect rule application or untrusted lemma having pedantic level <=N with proof (EXPERTS only)
merge subproofs in final proof post-processor (EXPERTS only) [*]
the lookahead depth for merging proofs at previsit (EXPERTS only)
Prune unused input assumptions from final scope (EXPERTS only) [*]
the matching recursion limit for reconstructing proofs of theory rewrites
the limit of steps considered for reconstructing proofs of theory rewrites

--prop-proof-mode=MODE modes for the type of proof generated by the SAT solver

to sat-external-prove (EXPERTS only) [*]

From the SAT Layer module:

instead of solving minisat dumps the asserted clauses in Dimacs format (EXPERTS only) [*]
Simplifications to be performed by Minisat. (EXPERTS only)
Modes for when to preregister literals.
sets the frequency of random decisions in the sat solver (P=0.0 by default) (EXPERTS only)
sets the base restart interval for the sat solver (N=25 by default) (EXPERTS only)
sets the restart interval increase factor for the sat solver (F=3.0 by default) (EXPERTS only)
sets the random seed for the sat solver
choose which sat solver to use, see --sat-solver=help (EXPERTS only)

From the Quantifiers module:

enable conflict-based quantifier instantiation [*]
add all available conflicting instances during conflict-based instantiation [*]
what effort to apply conflict find mechanism
optimization, skip instances based on possibly irrelevant portions of quantified formulas (EXPERTS only) [*]
enable entailment checks for t-constraints in cbqi algorithm (EXPERTS only) [*]
cbqi experimental variable ordering (EXPERTS only) [*]
mode for using samples in the counterexample-guided inductive synthesis loop
turns on counterexample-based quantifier instantiation [*]
apply counterexample-based instantiation to all quantified formulas (EXPERTS only) [*]
use word-level inversion approach for counterexample-guided quantifier instantiation for bit-vectors [*]
choose mode for handling bit-vector inequalities with counterexample-guided instantiation (EXPERTS only)
interleave model value instantiation with word-level inversion approach (EXPERTS only) [*]
linearize adder chains for variables (EXPERTS only) [*]
replaces extract terms with variables for counterexample-guided instantiation for bit-vectors (EXPERTS only) [*]
try to solve non-linear bv literals using model value projections (EXPERTS only) [*]
turns on full effort counterexample-based quantifier instantiation, which may resort to model-value instantiation (EXPERTS only) [*]
use integer infinity for vts in counterexample-based quantifier instantiation (EXPERTS only) [*]
use real infinity for vts in counterexample-based quantifier instantiation (EXPERTS only) [*]
only process innermost quantified formulas in counterexample-based quantifier instantiation [*]
choose substitutions based on midpoints of lower and upper bounds for counterexample-based quantifier instantiation [*]
use minimally constrained lower/upper bound for counterexample-based quantifier instantiation (EXPERTS only) [*]
when applicable, do multi instantiations per quantifier per round in counterexample-based quantifier instantiation (EXPERTS only) [*]
process nested quantified formulas with quantifier elimination in counterexample-based quantifier instantiation [*]
non-optimal bounds for counterexample-based quantifier instantiation (EXPERTS only) [*]
round up integer lower bounds in substitutions for counterexample-based quantifier instantiation (EXPERTS only) [*]
split quantified formulas that lead to variable eliminations (EXPERTS only)
generate candidate conjectures for inductive proofs (EXPERTS only) [*]
number of ground terms to generate for model filtering (EXPERTS only)
maximum depth of terms to consider for conjectures (EXPERTS only)
number of conjectures to generate per instantiation round (EXPERTS only)
use constructor expansion for single constructor datatypes triggers (EXPERTS only) [*]
apply strengthening for existential quantification over datatypes based on structural induction (EXPERTS only) [*]
expand datatype variables bound to one constructor in quantifiers (EXPERTS only) [*]
whether to do heuristic E-matching [*]
eliminate tautological disjuncts of quantified formulas [*]
techniques [*]
maximum number of rounds of enumerative instantiation to apply (-1 means no limit) (EXPERTS only)
whether to use relevant domain first for enumerative instantiation strategy (EXPERTS only) [*]
stratify effort levels in enumerative instantiation, which favors speed over fairness (EXPERTS only) [*]
enumerating tuples of quantifiers by increasing the sum of indices, rather than the maximum [*]
apply extended rewriting to bodies of quantified formulas [*]
use finite model finding heuristic for quantifier instantiation [*]
finite model finding on bounded quantification [*]
send all instantiations for bounded ranges in a single round (EXPERTS only) [*]
enforce bounds for bounded quantification lazily via use of proxy variables (EXPERTS only) [*]
find models for recursively defined functions, assumes functions are admissible (EXPERTS only) [*]
find models for recursively defined functions, assumes functions are admissible, allows empty type when function is irrelevant (EXPERTS only) [*]
choose mode for model-based quantifier instantiation (EXPERTS only)
the maximum cardinality of an interpreted type for which exhaustive enumeration in finite model finding is attempted
resort to full effort techniques instead of answering unknown when checking sygus candidates (EXPERTS only) [*]
do global negation of input formula (EXPERTS only) [*]
eagerly eliminate higher-order constraints (EXPERTS only) [*]
use store axiom during ho-elim (EXPERTS only) [*]
do higher-order matching algorithm for triggers with variable operators (EXPERTS only) [*]
merge term indices modulo equality (EXPERTS only) [*]
mode for using instantiation evaluation
generate additional triggers as needed during search (EXPERTS only) [*]
Instantiations are local to the SAT context [*]
maximum inst level of terms used to instantiate quantified formulas with (-1 == no limit, default) (EXPERTS only)
maximum number of instantiation rounds (-1 == no limit, default)
do not consider instances of quantified formulas that are currently entailed [*]
when to apply instantiation
instantiation rounds quantifiers takes (>=1) before allowing theory combination to happen (EXPERTS only)
apply strengthening for integers based on well-founded induction (EXPERTS only) [*]
split ites with dt testers as conditions (EXPERTS only) [*]
ite lifting mode for quantified formulas
choose literal matching mode (EXPERTS only)
perform quantifiers macro expansion [*]
mode for quantifiers macro expansion
use model-based quantifier instantiation [*]
model-based instantiation (0 == no limit)
use fast enumeration to augment instantiations from MBQI [*]
include variables defined in terms of others in grammars for fast enumerative mbqi (EXPERTS only) [*]
include free symbols from the body of the quantified formula in grammars for fast enumerative mbqi (EXPERTS only) [*]
include global symbols from all available assertions in grammars for fast enumerative mbqi (EXPERTS only) [*]
interleave model-based quantifier instantiation with other techniques (EXPERTS only) [*]
check nested quantified formulas in MBQI (EXPERTS only) [*]
only add one instantiation per quantifier per round for mbqi [*]

--miniscope-quant=MODE miniscope mode for quantified formulas

--miniscope-quant-user miniscope quantified formulas with user patterns [*]

caching version of multi triggers [*]
of instantiations is linear wrt number of ground terms [*]
only try multi triggers if single triggers give no instantiations [*]
select multi triggers when single triggers exist [*]
Enable interface to external oracles (EXPERTS only) [*]
use triggers that do not contain all free variables (EXPERTS only) [*]
pool-based instantiation: instantiate with ground terms occurring in user-specified pools (EXPERTS only) [*]
modes to apply skolemization eagerly to bodies of quantified formulas
apply skolemization to nested quantified formulas (EXPERTS only) [*]
prenex mode for quantified formulas (EXPERTS only)
prenex quantified formulas with user patterns [*]
print instantiations for formulas that do not have given identifiers [*]
purify triggers, e.g. f( x+1 ) becomes f( y ), x mapsto y-1 (EXPERTS only) [*]
infer alpha equivalence between quantified formulas [*]
mode for dynamic quantifiers splitting
assume that function defined by quantifiers are well defined (EXPERTS only) [*]
use all available techniques for inductive reasoning (EXPERTS only) [*]
selection mode for representatives in quantifiers engine (EXPERTS only)
consider ground terms within bodies of quantified formulas for matching (EXPERTS only) [*]
choose relational triggers such as x = f(y), x >= f(y) (EXPERTS only) [*]
prefer triggers that are more relevant based on SInE style analysis [*]
Enable conflict-based instantiation subsolver strategy [*]
Timeout (in milliseconds) for subsolver calls for sub-cbqi (EXPERTS only)
support SyGuS commands [*]
statically add constants appearing in conjecture to grammars [*]
static inference techniques for computing whether arguments of functions-to-synthesize are relevant (EXPERTS only) [*]
enable approach which automatically unfolds transition systems for directly solving invariant synthesis problems (EXPERTS only) [*]
Only use Boolean constants for return values in unification-based function synthesis (EXPERTS only) [*]
use unsat core analysis to construct Boolean connective to sygus conjectures [*]
abort if constant repair techniques are not applicable (EXPERTS only) [*]
mode for sygus enumeration
the branching factor for the number of interpreted constants to consider for each size when using --sygus-enum=fast (EXPERTS only)
the parameter of the geometric distribution used to determine the size of terms generated by --sygus-enum=random (EXPERTS only)
modes for sygus evaluation unfolding
timeout (in milliseconds) for satisfiability checks in expression miners (EXPERTS only)
mode for filtering sygus solutions (EXPERTS only)
solutions are filtered based on later ones (EXPERTS only) [*]
mode for SyGuS grammar construction
add partial function applications to the grammar (EXPERTS only) [*]
statically normalize sygus grammars based on flattening (linearization) (EXPERTS only) [*]
use disjunctions in internally generated grammars. this is set to false when solving abduction queries. (EXPERTS only) [*]
conjectures (EXPERTS only)
Enable SyGuS instantiation quantifiers module [*]

--sygus-inst-mode=MODE select instantiation lemma mode (EXPERTS only)

select scope of ground terms (EXPERTS only)
granularity for ground terms (EXPERTS only)
pre-condition, strengthen post-condition, or none)
use invariant templates (with solution reconstruction) for syntax guided problems (EXPERTS only) [*]
statically minimize sygus grammars [*]
output mode for sygus
enable approach which unifies conditional solutions, specialized for programming-by-examples (pbe) conjectures [*]
register value of minimial term size (EXPERTS only) [*]
when using multiple enumerators, ensure that we only register values of minimial term size plus this value (default 0) (EXPERTS only)
use quantifier elimination as a preprocessing step for sygus (EXPERTS only) [*]
using SyGuS, for internal fuzzing (EXPERTS only)
mode for dumping external files corresponding to interesting satisfiability queries with sygus-query-gen (EXPERTS only)
do not print queries that are solved (EXPERTS only) [*]
number of points that we allow to be equal for enumerating satisfiable queries with sygus-query-gen (EXPERTS only)
enable efficient support for recursive functions in sygus (EXPERTS only) [*]
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) (EXPERTS only)
automatically infer recursive definitions for sygus (EXPERTS only) [*]
use approach to repair constants in sygus candidate solutions [*]
timeout (in milliseconds) for the satisfiability check to repair constants in sygus candidate solutions (EXPERTS only)
candidate rewrites (EXPERTS only) [*]
candidate rewrites (EXPERTS only) [*]
filter candidate rewrites based on congruence (EXPERTS only) [*]
filter candidate rewrites based on matching (EXPERTS only) [*]
filter non-linear candidate rewrites (EXPERTS only) [*]
filter candidate rewrites based on variable ordering (EXPERTS only) [*]
the maximum number of variables per type that appear in rewrites from sygus-rr-synth-input (EXPERTS only)
synthesize rewrite rules over all sygus grammar types recursively (EXPERTS only) [*]
sample floating-point values uniformly instead of in a biased fashion (EXPERTS only) [*]
(EXPERTS only) [*]
number of points to consider when doing sygus rewriter sample testing (EXPERTS only)
mode for processing single invocation synthesis conjectures
abort if synthesis conjecture is not single invocation [*]
policy for reconstructing solutions for single invocation conjectures
number of rounds of enumeration to use during solution reconstruction (negative means unlimited) (EXPERTS only)
the parameter of the geometric distribution used to determine the number of unification patterns generated by single invocation techniques. (EXPERTS only)
enumerate a stream of solutions instead of terminating after the first one [*]
Do not try repeated solutions when using independent synthesis of conditions in unification-based function synthesis (EXPERTS only) [*]
mode for synthesis via piecewise-indepedent unification
Shuffle condition pool when building solutions (may change solutions sizes) (EXPERTS only) [*]
maximum number of instantiation rounds for sygus verification calls (-1 == no limit, default is 10) (EXPERTS only)
timeout (in milliseconds) for verifying satisfiability of synthesized terms (0 == no limit)
which ground terms to consider for instantiation
selection mode to activate triggers (EXPERTS only)
selection mode for triggers
policy for handling user-provided patterns for quantifier instantiation
policy for handling user-provided pools for quantifier instantiation (EXPERTS only)
enable simple variable elimination for quantified formulas [*]
enable variable elimination for quantified formulas that infers entailed equalities corresponding to eliminations [*]
enable variable elimination based on infinite projection of unbound arithmetic variables [*]

From the Separation Logic Theory module:

enables the separation logic solver in applicable logics (EXPERTS only) [*]
only add refinement lemmas for minimal (innermost) assertions (EXPERTS only) [*]
eliminate emp constraint at preprocess time (EXPERTS only) [*]

From the Sets Theory module:

enable the relations extension of the theory of sets (EXPERTS only) [*]
enable the cardinality extension of the theory of sets (EXPERTS only) [*]
enable extended symbols such as complement and universe in theory of sets (EXPERTS only) [*]
introduce proxy variables eagerly to shorten lemmas (EXPERTS only) [*]

From the SMT Layer module:

in models, output arrays (and in future, maybe others) using abstract values, as required by the SMT-LIB standard (EXPERTS only) [*]
eliminate functions by ackermannization (EXPERTS only) [*]
use internal pow2 operator when translating shift notes (EXPERTS only) [*]
granularity to use in --solve-bv-as-int mode and for iand operator (experimental) (EXPERTS only)
mode for deep restarts (EXPERTS only)
sets the threshold for average assertions per literal before a deep restart (EXPERTS only)
--difficulty-mode=help (EXPERTS only)
remove ITEs early in preprocessing (EXPERTS only) [*]
mode for using extended rewriter as a preprocessing pass, see --ext-rew-prep=help (EXPERTS only)
Cross-theory rewrites (EXPERTS only) [*]
Set the refinement scheme for integer AND (EXPERTS only)
choose interpolants production mode, see --interpolants-mode=help
turn on ite simplification (Kim (and Somenzi) et al., SAT 2009) (EXPERTS only) [*]
rewrite the input based on learned literals [*]
if an unsat core is produced, it is reduced to a minimal unsat core (EXPERTS only) [*]
mode for producing model cores
allow variable elimination based on unevaluatable terms to variables (EXPERTS only) [*]
do the ite simplification pass again if repeating simplification (EXPERTS only) [*]
print all formulas regardless of whether they are named, e.g. in unsat cores [*]
support the get-abduct command [*]
keep an assertions list. Note this option is always enabled. [*]
support the get-assignment command [*]
enable tracking of difficulty. [*]

--produce-interpolants turn on interpolation generation. [*]

produce learned literals, support get-learned-literals [*]
turn on unsat assumptions generation [*]
choose proof mode, see --proof-mode=help (EXPERTS only)
make multiple passes with nonclausal simplifier (EXPERTS only) [*]
enables compressing ites after ite simplification (EXPERTS only) [*]
enables simplifyWithCare in ite simplificiation (EXPERTS only) [*]
choose simplification mode, see --simplification=help
apply Boolean constant propagation as a substitution during simplification (EXPERTS only) [*]

--solve-bv-as-int=MODE mode for translating BVAnd to integer

attempt to solve a pure integer satisfiable problem by bitblasting in sufficient bitwidth (experimental)
attempt to solve a pure real satisfiable problem as an integer problem (for non-linear) [*]
calculate sort inference of input problem, convert the input based on monotonic sorts (EXPERTS only) [*]
use static learning (on by default) [*]
timeout (in milliseconds) for satisfiability checks for timeout cores (EXPERTS only)
turn on unconstrained simplification (see Bruttomesso/Brummayer PhD thesis). Fully supported only in (subsets of) the logic QF_ABV. (EXPERTS only) [*]
choose unsat core mode, see --unsat-cores-mode=help (EXPERTS only)

From the Strings Theory module:

regular expression elimination mode
allow regular expressions as first class terms (EXPERTS only) [*]
determines which regular expressions intersections to compute (EXPERTS only)
use array-inspired solver for sequence updates in eager or lazy mode (EXPERTS only)
for strings, which is a prefix of the interval of unicode code points in the SMT-LIB standard (EXPERTS only)
check entailment between length terms to reduce splitting [*]
use extensionality for string disequalities [*]
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 [*]

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 [*]

experimental features in the theory of strings [*]
do flat form inferences (EXPERTS only) [*]
the finite model finding used by the theory of strings [*]
always send lemmas out instead of making internal inferences (EXPERTS only) [*]
generalized inferences in strings based on proxy symbols (EXPERTS only) [*]
perform string preprocessing lazily [*]
strings length normalization lemma (EXPERTS only) [*]
use models to avoid reductions for extended functions that introduce quantified formulas [*]
The maximum size of string values in models (EXPERTS only)
determines how to process looping string equations
use regular expression derive for conflict finding (EXPERTS only) [*]
eager reduction of positive membership into concatenation (EXPERTS only) [*]
use possibly recursive reasoning when finding approximations for arithmetic string terms (EXPERTS only) [*]
use regular expression inclusion for finding conflicts and avoiding regular expression unfolding [*]
regression explanations for string lemmas (EXPERTS only) [*]

From the Theory Layer module:

assign values for uninterpreted functions in models (EXPERTS only) [*]
mode for processing theory conflicts (EXPERTS only)
mode for managing equalities across theory solvers

--lemma-inprocess=MODE Modes for inprocessing lemmas. (EXPERTS only)

Infer equivalent literals when using lemma inprocess (EXPERTS only) [*]
Modes for substitutions for inprocessing lemmas. (EXPERTS only)
enable analysis of relevance of asserted literals with respect to the input formula (EXPERTS only) [*]
mode for theory combination (EXPERTS only)
mode for Theory::theoryof() (EXPERTS only)

From the Uninterpreted Functions Theory module:

eagerly expand bit-vector to arithmetic conversions during preprocessing [*]
model-based inferences for bit-vector to arithmetic conversions (EXPERTS only) [*]
use UF symmetry breaker (Deharbe et al., CADE 2011) [*]
allows logics with UF+cardinality (EXPERTS only) [*]
enables the higher-order logic solver in applicable logics (EXPERTS only) [*]
apply extensionality on function symbols (EXPERTS only) [*]
apply quantifier elimination eagerly when two lambdas are equated (EXPERTS only) [*]
do lambda lifting lazily [*]
mode of operation for uf with cardinality solver.
tells the uf with cardinality to only consider models that interpret uninterpreted sorts of cardinality at most N (-1 == no limit, default)
use fair strategy for finite model finding multiple sorts [*]
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.

compiled with GCC version 15.2.0 on Dec 24 2025 00:41:53

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/cadical for copyright information.
CryptoMiniSat - An Advanced SAT Solver See https://github.com/msoos/cryptominisat for copyright information.
SymFPU - The Symbolic Floating Point Unit See https://github.com/martin-cs/symfpu/tree/CVC4 for 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/CLN for 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.

December 2025 This is cvc5 version 1.3.2