bionic (1) cvc4.1.gz

Provided by: cvc4_1.5-1_amd64 bug

NAME

       cvc4, pcvc4 - an automated theorem prover

SYNOPSIS

       cvc4 [ options ] [ file ]

       pcvc4 [ options ] [ file ]

DESCRIPTION

       cvc4  is  an  automated  theorem  prover  for first-order formulas with respect to background theories of
       interest.  pcvc4 is CVC4's "portfolio" variant, which is capable of running multiple  CVC4  instances  in
       parallel, configured differently.

       With  file  , commands are read from file and executed.  CVC4 supports the SMT-LIB (versions 1.2 and 2.0)
       input format, as well as its own native “presentation language” , which is similar in  many  respects  to
       CVC3's presentation language, but not identical.

       If  file is unspecified, standard input is read (and the CVC4 presentation language is assumed).  If file
       is unspecified and CVC4 is connected to a terminal, interactive mode is assumed.

COMMON OPTIONS

       Each option marked with [*] has a --no-OPTIONNAME variant, which reverses the sense of the option.

       --lang=LANG | -L LANG
              force input language (default is "auto"; see --lang help)

       --output-lang=LANG
              force output language (default is "auto"; see --output-lang help)

       --verbose | -v
              increase verbosity (may be repeated)

       --quiet | -q
              decrease verbosity (may be repeated)

       --stats
              give statistics on exit [*]

       --version | -V
              identify this CVC4 binary

       --help | -h
              full command line reference

       --show-config
              show CVC4 static configuration

       --strict-parsing
              be less tolerant of non-conforming inputs [*]

       --dump=MODE
              dump preprocessed assertions, etc., see --dump=help

       --dump-to=FILE
              all dumping goes to FILE (instead of stdout)

       --produce-models | -m
              support the get-value and get-model commands [*]

       --produce-assertions
              keep an assertions list (enables get-assertions command) [*]

       --incremental | -i
              enable incremental solving [*]

       --tlimit=MS
              enable time limiting (give milliseconds)

       --tlimit-per=MS
              enable time limiting per query (give milliseconds)

       --rlimit=N
              enable resource limiting (currently, roughly the number of SAT conflicts)

       --rlimit-per=N
              enable resource limiting per query

       --hard-limit
              the resource limit is hard potentially leaving  the  smtEngine  in  an  unsafe  state  (should  be
              destroyed and rebuild after resourcing out) [*]

       --cpu-time
              measures CPU time if set to true and wall time if false (default false) [*]

ARITHMETIC THEORY OPTIONS

       --unate-lemmas=MODE
              determines which lemmas to add before solving (default is 'all', see --unate-lemmas=help)

       --arith-prop=MODE
              turns on arithmetic propagation (default is 'old', see --arith-prop=help)

       --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

       --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)

       --error-selection-rule=RULE
              change the pivot rule for the basic variable (default is 'min', see --pivot-rule help)

       --simplex-check-period=N
              the number of pivots to do in simplex before rechecking for a conflict on all variables

       --pivot-threshold=N
              sets  the number of pivots using --pivot-rule per basic variable per simplex instance before using
              variable order

       --prop-row-length=N
              sets the maximum row length to be used in propagation

       --enable-dio-solver
              turns on Linear Diophantine Equation solver (Griggio, JSAT 2012)

       --disable-dio-solver
              turns off Linear Diophantine Equation solver (Griggio, JSAT 2012)

       --enable-arith-rewrite-equalities
              turns on the preprocessing rewrite turning equalities into a conjunction of inequalities

       --disable-arith-rewrite-equalities
              turns off the preprocessing rewrite turning equalities into a conjunction of inequalities

       --enable-miplib-trick
              turns on the preprocessing step of attempting to infer bounds on miplib problems

       --disable-miplib-trick
              turns off the preprocessing step of attempting to infer bounds on miplib problems

       --miplib-trick-subs=N
              do substitution for miplib 'tmp' vars if defined in <= N eliminated vars

       --cut-all-bounded
              turns on the integer solving step of periodically cutting all integer  variables  that  have  both
              upper and lower bounds [*]

       --no-cut-all-bounded
              turns  off  the  integer solving step of periodically cutting all integer variables that have both
              upper and lower bounds

       --maxCutsInContext
              maximum cuts in a given context before signalling a restart

       --revert-arith-models-on-unsat
              revert the arithmetic model to a known safe model on unsat if one is cached [*]

       --fc-penalties
              turns on degenerate pivot penalties [*]

       --no-fc-penalties
              turns off degenerate pivot penalties

       --use-fcsimplex
              use focusing and converging simplex (FMCAD 2013 submission) [*]

       --use-soi
              use sum of infeasibility simplex (FMCAD 2013 submission) [*]

       --restrict-pivots
              have a pivot cap for simplex at effort levels below fullEffort [*]

       --collect-pivot-stats
              collect the pivot history [*]

       --use-approx
              attempt to use an approximate solver [*]

       --approx-branch-depth
              maximum branch depth the approximate solver is allowed to take

       --dio-decomps
              let skolem variables for integer divisibility constraints leak from the dio solver [*]

       --new-prop
              use the new row propagation system [*]

       --arith-prop-clauses
              rows shorter than this are propagated as clauses

       --soi-qe
              use quick explain to minimize the sum of infeasibility conflicts [*]

       --rewrite-divk
              rewrite division and mod when by a constant into linear terms [*]

       --se-solve-int
              attempt to use the approximate solve integer method on standard effort [*]

       --lemmas-on-replay-failure
              attempt to use external lemmas if approximate solve integer failed [*]

       --dio-turns
              turns in a row dio solver cutting gets

       --rr-turns
              round robin turn

       --dio-repeat
              handle dio solver constraints in mass or one at a time [*]

       --replay-early-close-depth
              multiples of the depths to try to close the approx log eagerly

       --replay-failure-penalty
              number of solve integer attempts to skips after a numeric failure

       --replay-num-err-penalty
              number of solve integer attempts to skips after a numeric failure

       --replay-reject-cut
              maximum complexity of any coefficient while replaying cuts

       --replay-lemma-reject-cut
              maximum complexity of any coefficient while outputting replaying cut lemmas

       --replay-soi-major-threshold
              threshold for a major tolerance failure by the approximate solver

       --replay-soi-major-threshold-pen
              threshold for a major tolerance failure by the approximate solver

       --replay-soi-minor-threshold
              threshold for a minor tolerance failure by the approximate solver

       --replay-soi-minor-threshold-pen
              threshold for a minor tolerance failure by the approximate solver

       --pp-assert-max-sub-size
              threshold for substituting an equality in ppAssert

       --max-replay-tree
              threshold for attempting to replay a tree

       --pb-rewrites
              apply pseudo boolean rewrites [*]

       --pb-rewrite-threshold
              threshold of number of pseudoboolean variables to have before doing rewrites

       --snorm-infer-eq
              infer equalities based on Shostak normalization [*]

       --nl-ext
              extended approach to non-linear [*]

       --nl-ext-rbound
              use resolution-style inference for inferring new bounds [*]

       --nl-ext-tplanes
              use non-terminating tangent plane strategy for non-linear [*]

       --nl-ext-ent-conf
              check for entailed conflicts in non-linear solver [*]

       --nl-ext-rewrite
              do rewrites in non-linear solver [*]

       --nl-ext-solve-subs
              do solving for determining constant substitutions [*]

       --nl-ext-purify
              purify non-linear terms at preprocess [*]

       --nl-ext-split-zero
              intial splits on zero for all variables [*]

ARRAYS THEORY OPTIONS

       --arrays-optimize-linear
              turn on optimization for linear array terms (see de Moura FMCAD 09 arrays paper) [*]

       --arrays-lazy-rintro1
              turn on optimization to only perform  RIntro1  rule  lazily  (see  Jovanovic/Barrett  2012:  Being
              Careful with Theory Combination) [*]

       --arrays-weak-equiv
              use algorithm from Christ/Hoenicke (SMT 2014) [*]

       --arrays-model-based
              turn on model-based array solver [*]

       --arrays-eager-index
              turn on eager index splitting for generated array lemmas [*]

       --arrays-eager-lemmas
              turn on eager lemma generation for arrays [*]

       --arrays-config
              set different array option configurations - for developers only

       --arrays-reduce-sharing
              use model information to reduce size of care graph for arrays [*]

       --arrays-prop
              propagation effort for arrays: 0 is none, 1 is some, 2 is full

BASE OPTIONS

       --stats-every-query
              in incremental mode, print stats after every satisfiability or validity query [*]

       --stats-hide-zeros
              hide statistics which are zero

       --stats-show-zeros
              show statistics even when they are zero (default)

       --parse-only
              exit after parsing input [*]

       --preprocess-only
              exit after preprocessing input [*]

       --trace=TAG | -t TAG
              trace something (e.g. -t pushpop), can repeat

       --debug=TAG | -d TAG
              debug something (e.g. -d arith), can repeat

       --print-success
              print the "success" output required of SMT-LIBv2 [*]

       --smtlib-strict
              SMT-LIBv2 compliance mode (implies other options)

BITVECTOR THEORY OPTIONS

       --bv-sat-solver=MODE
              choose which sat solver to use, see --bv-sat-solver=help (EXPERTS only)

       --bitblast=MODE
              choose bitblasting mode, see --bitblast=help

       --bitblast-aig
              bitblast by first converting to AIG (implies --bitblast=eager) [*]

       --bv-aig-simp=COMMAND
              abc command to run AIG simplifications (implies --bitblast-aig, default is "balance;drw") (EXPERTS
              only)

       --bv-propagate
              use bit-vector propagation in the bit-blaster [*]

       --bv-eq-solver
              use the equality engine for the bit-vector theory (only if --bitblast=lazy) [*]

       --bv-eq-slicer=MODE
              turn on the slicing equality solver for the bit-vector theory (only if --bitblast=lazy)

       --bv-inequality-solver
              turn on the inequality solver for the bit-vector theory (only if --bitblast=lazy) [*]

       --bv-algebraic-solver
              turn on the algebraic solver for the bit-vector theory (only if --bitblast=lazy) [*]

       --bv-algebraic-budget
              the budget allowed for the algebraic solver in number of SAT conflicts (EXPERTS only)

       --bv-to-bool
              lift bit-vectors of size 1 to booleans when possible [*]

       --bool-to-bv
              convert booleans to bit-vectors of size 1 when possible [*]

       --bv-div-zero-const
              always return -1 on division by zero [*]

       --bv-extract-arith
              enable rewrite pushing extract [i:0] over arithmetic operations (can blow up) (EXPERTS only) [*]

       --bv-abstraction
              mcm benchmark abstraction (EXPERTS only) [*]

       --bv-skolemize
              skolemize arguments for bv abstraction (only does something if --bv-abstraction  is  on)  (EXPERTS
              only) [*]

       --bv-num-func=NUM
              number of function symbols in conflicts that are generalized (EXPERTS only)

       --bv-eager-explanations
              compute bit-blasting propagation explanations eagerly (EXPERTS only) [*]

       --bv-quick-xplain
              minimize bv conflicts using the QuickXplain algorithm (EXPERTS only) [*]

       --bv-intro-pow2
              introduce bitvector powers of two as a preprocessing pass (EXPERTS only) [*]

       --bv-lazy-rewrite-extf
              lazily rewrite extended functions like bv2nat and int2bv [*]

       --bv-lazy-reduce-extf
              reduce extended functions like bv2nat and int2bv at last call instead of full effort [*]

       --bv-alg-extf
              algebraic inferences for extended functions [*]

DATATYPES THEORY OPTIONS

       --dt-rewrite-error-sel
              rewrite incorrectly applied selectors to arbitrary ground term (EXPERTS only) [*]

       --dt-force-assignment
              force the datatypes solver to give specific values to all datatypes terms before answering sat [*]

       --dt-binary-split
              do binary splits for datatype constructor types [*]

       --dt-ref-sk-intro
              introduce reference skolems for shorter explanations [*]

       --dt-use-testers
              do not preprocess away tester predicates [*]

       --cdt-bisimilar
              do bisimilarity check for co-datatypes [*]

       --dt-cyclic
              do cyclicity check for datatypes [*]

       --dt-infer-as-lemmas
              always send lemmas out instead of making internal inferences [*]

       --dt-blast-splits
              when applicable, blast splitting lemmas for all variables at once [*]

DECISION HEURISTICS OPTIONS

       --decision=MODE
              choose decision mode, see --decision=help

       --decision-threshold=N
              ignore all nodes greater than threshold in first attempt to pick decision (EXPERTS only)

       --decision-use-weight
              use  the  weight nodes (locally, by looking at children) to direct recursive search (EXPERTS only)
              [*]

       --decision-random-weight=N
              assign random weights to nodes between 0 and N-1 (0: disable) (EXPERTS only)

       --decision-weight-internal=HOW
              computer weights of internal nodes using children: off, max, sum, usr1 (meaning evolving) (EXPERTS
              only)

EXPRESSION PACKAGE OPTIONS

       --default-expr-depth=N
              print exprs to depth N (0 == default, -1 == no limit)

       --default-dag-thresh=N
              dagify common subexprs appearing > N times (1 == default, 0 == don't dagify)

       --print-expr-types
              print types with variables when printing exprs [*]

       --eager-type-checking
              type check expressions immediately on creation (debug builds only)

       --lazy-type-checking
              type check expressions only when necessary (default)

IDL OPTIONS

       --enable-idl-rewrite-equalities
              enable rewriting equalities into two inequalities in IDL solver (default is disabled)

       --disable-idl-rewrite-equalities
              disable rewriting equalities into two inequalities in IDL solver (default is disabled)

DRIVER OPTIONS

       --show-debug-tags
              show all available tags for debugging

       --show-trace-tags
              show all available tags for tracing

       --early-exit
              do not run destructors at exit; default on except in debug builds (EXPERTS only) [*]

       --threads=N
              Total number of threads for portfolio

       --threadN=string
              configures portfolio thread N (0..#threads-1)

       --thread-stack=N
              stack size for worker threads in MB (0 means use Boost/thread lib default)

       --filter-lemma-length=N
              don't share (among portfolio threads) lemmas strictly longer than N

       --fallback-sequential
              Switch  to  sequential mode (instead of printing an error) if it can't be solved in portfolio mode
              [*]

       --incremental-parallel
              Use parallel solver even in incremental mode (may print 'unknown's at times) [*]

       --interactive
              force interactive/non-interactive mode [*]

       --continued-execution
              continue executing commands, even on error

       --segv-spin
              spin on segfault/other crash waiting for gdb [*]

       --tear-down-incremental=N
              implement PUSH/POP/multi-query by destroying and recreating SmtEngine  every  N  queries  (EXPERTS
              only)

       --wait-to-join
              wait for other threads to join before quitting (EXPERTS only) [*]

PARSER OPTIONS

       --mmap memory map file input [*]

PRINTING OPTIONS

       --model-format=MODE
              print format mode for models, see --model-format=help

       --inst-format=MODE
              print format mode for instantiations, see --inst-format=help

PROOF OPTIONS

       --lfsc-letification
              turns on global letification in LFSC proofs [*]

       --aggressive-core-min
              turns on aggressive unsat core minimization (experimental) [*]

       --fewer-preprocessing-holes
              try to eliminate preprocessing holes in proofs [*]

       --allow-empty-dependencies
              if unable to track the dependencies of a rewritten/preprocessed assertion, fail silently [*]

SAT LAYER OPTIONS

       --random-freq=P
              sets the frequency of random decisions in the sat solver (P=0.0 by default)

       --random-seed=S
              sets the random seed for the sat solver

       --restart-int-base=N
              sets the base restart interval for the sat solver (N=25 by default)

       --restart-int-inc=F
              sets the restart interval increase factor for the sat solver (F=3.0 by default)

       --refine-conflicts
              refine theory conflict clauses (default false) [*]

       --minisat-elimination
              use Minisat elimination [*]

       --minisat-dump-dimacs
              instead of solving minisat dumps the asserted clauses in Dimacs format [*]

QUANTIFIERS OPTIONS

       --miniscope-quant
              miniscope quantifiers [*]

       --miniscope-quant-fv
              miniscope quantifiers for ground subformulas [*]

       --quant-split
              apply splitting to quantified formulas based on variable disjoint disjuncts [*]

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

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

       --var-elim-quant
              enable simple variable elimination for quantified formulas [*]

       --var-ineq-elim-quant
              enable variable elimination based on infinite projection of unbound arithmetic variables [*]

       --dt-var-exp-quant
              expand datatype variables bound to one constructor in quantifiers [*]

       --ite-lift-quant=MODE
              ite lifting mode for quantified formulas

       --cond-var-split-quant
              split quantified formulas that lead to variable eliminations [*]

       --cond-var-split-agg-quant
              aggressive split quantified formulas that lead to variable eliminations [*]

       --ite-dtt-split-quant
              split ites with dt testers as conditions [*]

       --pre-skolem-quant
              apply skolemization eagerly to bodies of quantified formulas [*]

       --pre-skolem-quant-nested
              apply skolemization to nested quantified formulas [*]

       --pre-skolem-quant-agg
              apply skolemization to quantified formulas aggressively [*]

       --ag-miniscope-quant
              perform aggressive miniscoping for quantifiers [*]

       --elim-taut-quant
              eliminate tautological disjuncts of quantified formulas [*]

       --elim-ext-arith-quant
              eliminate extended arithmetic symbols in quantified formulas [*]

       --cond-rewrite-quant
              conditional rewriting of quantified formulas [*]

       --e-matching
              whether to do heuristic E-matching [*]

       --term-db-mode
              which ground terms to consider for instantiation

       --register-quant-body-terms
              consider ground terms within bodies of quantified formulas for matching [*]

       --infer-arith-trigger-eq
              infer equalities for trigger terms based on solving arithmetic equalities [*]

       --infer-arith-trigger-eq-exp
              record explanations for inferArithTriggerEq [*]

       --strict-triggers
              only instantiate quantifiers with user patterns based on triggers [*]

       --relevant-triggers
              prefer triggers that are more relevant based on SInE style analysis [*]

       --relational-triggers
              choose relational triggers such as x = f(y), x >= f(y) [*]

       --purify-triggers
              purify triggers, e.g. f( x+1 ) becomes f( y ), x mapsto y-1 [*]

       --purify-dt-triggers
              purify dt triggers, match all constructors of correct form instead of selectors [*]

       --pure-th-triggers
              use pure theory terms as single triggers [*]

       --partial-triggers
              use triggers that do not contain all free variables [*]

       --multi-trigger-when-single
              select multi triggers when single triggers exist [*]

       --multi-trigger-priority
              only try multi triggers if single triggers give no instantiations [*]

       --multi-trigger-cache
              caching version of multi triggers [*]

       --multi-trigger-linear
              implementation  of  multi  triggers where maximum number of instantiations is linear wrt number of
              ground terms [*]

       --trigger-sel
              selection mode for triggers

       --trigger-active-sel
              selection mode to activate triggers

       --user-pat=MODE
              policy for handling user-provided patterns for quantifier instantiation

       --increment-triggers
              generate additional triggers as needed during search [*]

       --inst-when=MODE
              when to apply instantiation

       --inst-when-strict-interleave
              ensure theory combination and standard quantifier effort strategies take turns  [*]

       --inst-when-phase=N
              instantiation rounds quantifiers takes (>=1) before allowing theory combination to happen

       --inst-when-tc-first
              allow theory combination to happen once initially, before quantifier strategies are run [*]

       --quant-model-ee
              use equality engine of model for last call effort [*]

       --inst-max-level=N
              maximum inst level of terms used to instantiate quantified formulas with (-1 == no limit, default)

       --inst-level-input-only
              only input terms are assigned instantiation level zero [*]

       --quant-rep-mode=MODE
              selection mode for representatives in quantifiers engine

       --inst-rlv-cond
              add relevancy conditions for instantiations [*]

       --full-saturate-quant
              when all other quantifier instantiation  strategies  fail,  instantiate  with  ground  terms  from
              relevant domain, then arbitrary ground terms before answering unknown [*]

       --full-saturate-quant-rd
              whether to use relevant domain first for full saturation instantiation strategy [*]

       --fs-inst
              interleave full saturate instantiation with other techniques [*]

       --literal-matching=MODE
              choose literal matching mode

       --finite-model-find
              use finite model finding heuristic for quantifier instantiation [*]

       --quant-fun-wd
              assume that function defined by quantifiers are well defined [*]

       --fmf-fun
              find models for recursively defined functions, assumes functions are admissible [*]

       --fmf-fun-rlv
              find models for recursively defined functions, assumes functions are admissible, allows empty type
              when function is irrelevant [*]

       --fmf-empty-sorts
              allow finite model finding to assume sorts that do not occur in ground assertions are empty [*]

       --mbqi=MODE
              choose mode for model-based quantifier instantiation

       --mbqi-one-inst-per-round
              only add one instantiation per quantifier per round for mbqi [*]

       --mbqi-one-quant-per-round
              only add instantiations for one quantifier per round for mbqi [*]

       --fmf-inst-engine
              use instantiation engine in conjunction with finite model finding [*]

       --fmf-inst-gen
              enable Inst-Gen instantiation techniques for finite model finding  [*]

       --fmf-inst-gen-one-quant-per-round
              only perform Inst-Gen instantiation techniques on one quantifier per round [*]

       --fmf-fresh-dc
              use fresh distinguished representative when applying Inst-Gen techniques [*]

       --fmf-fmc-simple
              simple models in full model check for finite model finding [*]

       --fmf-bound-int
              finite model finding on bounded integer quantification [*]

       --fmf-bound
              finite model finding on bounded quantification [*]

       --fmf-bound-lazy
              enforce bounds for bounded quantification lazily via use of proxy variables [*]

       --fmf-bound-min-mode=MODE
              mode for which types of bounds to minimize via first decision heuristics

       --quant-cf
              enable conflict find mechanism for quantifiers [*]

       --quant-cf-mode=MODE
              what effort to apply conflict find mechanism

       --quant-cf-when=MODE
              when to invoke conflict find mechanism for quantifiers

       --qcf-tconstraint
              enable entailment checks for t-constraints in qcf algorithm [*]

       --qcf-all-conflict
              add all available conflicting instances during conflict-based instantiation [*]

       --qcf-nested-conflict
              consider conflicts for nested quantifiers [*]

       --qcf-vo-exp
              qcf experimental variable ordering [*]

       --inst-no-entail
              do not consider instances of quantified formulas that are currently entailed [*]

       --inst-no-model-true
              do not consider instances of quantified formulas that are  currently  true  in  model,  if  it  is
              available [*]

       --inst-prop
              internal propagation for instantiations for selecting relevant instances [*]

       --qcf-eager-test
              optimization, test qcf instances eagerly [*]

       --qcf-eager-check-rd
              optimization, eagerly check relevant domain of matched position [*]

       --qcf-skip-rd
              optimization, skip instances based on possibly irrelevant portions of quantified formulas [*]

       --rewrite-rules
              use rewrite rules module [*]

       --rr-one-inst-per-round
              add one instance of rewrite rule per round [*]

       --quant-ind
              use all available techniques for inductive reasoning [*]

       --dt-stc-ind
              apply  strengthening  for  existential quantification over datatypes based on structural induction
              [*]

       --int-wf-ind
              apply strengthening for integers based on well-founded induction [*]

       --conjecture-gen
              generate candidate conjectures for inductive proofs [*]

       --conjecture-gen-per-round=N
              number of conjectures to generate per instantiation round

       --conjecture-no-filter
              do not filter conjectures [*]

       --conjecture-filter-active-terms
              filter based on active terms [*]

       --conjecture-filter-canonical
              filter based on canonicity [*]

       --conjecture-filter-model
              filter based on model [*]

       --conjecture-gen-gt-enum=N
              number of ground terms to generate for model filtering

       --conjecture-gen-uee-intro
              more aggressive merging for universal equality engine, introduces terms [*]

       --conjecture-gen-max-depth=N
              maximum depth of terms to consider for conjectures

       --cegqi
               counterexample-guided quantifier instantiation [*]

       --cegqi-fair=MODE
               if and how to apply fairness for cegqi

       --cegqi-si=MODE
               mode for processing single invocation synthesis conjectures

       --cegqi-si-partial
               combined techniques for synthesis conjectures that are partially single invocation  [*]

       --cegqi-si-reconstruct
               reconstruct solutions for single invocation conjectures in original grammar [*]

       --cegqi-si-sol-min-core
               minimize solutions for single invocation conjectures based on unsat core [*]

       --cegqi-si-sol-min-inst
               minimize individual instantiations for single invocation conjectures based on unsat core [*]

       --cegqi-si-reconstruct-const
               include constants when reconstruct  solutions  for  single  invocation  conjectures  in  original
              grammar [*]

       --cegqi-si-abort
               abort if synthesis conjecture is not single invocation [*]

       --sygus-nf
               only search for sygus builtin terms that are in normal form [*]

       --sygus-nf-arg
               account for relationship between arguments of operations in sygus normal form [*]

       --sygus-nf-sym
               narrow sygus search space based on global state of current candidate program [*]

       --sygus-nf-sym-gen
               generalize lemmas for global search space narrowing [*]

       --sygus-nf-sym-arg
               generalize based on arguments in global search space narrowing [*]

       --sygus-nf-sym-content
               generalize based on content in global search space narrowing [*]

       --sygus-inv-templ=MODE
               template mode for sygus invariant synthesis

       --sygus-unif-csol
               enable approach which unifies conditional solutions [*]

       --sygus-direct-eval
               direct unfolding of evaluation functions [*]

       --sygus-cref-eval
               direct evaluation of refinement lemmas for conflict analysis [*]

       --cbqi turns on counterexample-based quantifier instantiation [*]

       --cbqi-recurse
              turns on recursive counterexample-based quantifier instantiation [*]

       --cbqi-sat
              answer sat when quantifiers are asserted with counterexample-based quantifier instantiation [*]

       --cbqi-model
              guide instantiations by model values for counterexample-based quantifier instantiation [*]

       --cbqi-all
              apply counterexample-based instantiation to all quantified formulas [*]

       --cbqi-use-inf-int
              use integer infinity for vts in counterexample-based quantifier instantiation [*]

       --cbqi-use-inf-real
              use real infinity for vts in counterexample-based quantifier instantiation [*]

       --cbqi-prereg-inst
               preregister ground instantiations in counterexample-based quantifier instantiation [*]

       --cbqi-min-bounds
               use minimally constrained lower/upper bound for counterexample-based quantifier instantiation [*]

       --cbqi-round-up-lia
               round  up integer lower bounds in substitutions for counterexample-based quantifier instantiation
              [*]

       --cbqi-midpoint
               choose substitutions based on midpoints  of  lower  and  upper  bounds  for  counterexample-based
              quantifier instantiation [*]

       --cbqi-nopt
               non-optimal bounds for counterexample-based quantifier instantiation [*]

       --cbqi-lit-dep
               dependency lemmas for quantifier alternation in counterexample-based quantifier instantiation [*]

       --cbqi-innermost
              only process innermost quantified formulas in counterexample-based quantifier instantiation [*]

       --cbqi-nested-qe
              process  nested quantified formulas with quantifier elimination in counterexample-based quantifier
              instantiation [*]

       --quant-epr
              infer whether in effectively propositional fragment, use for cbqi [*]

       --quant-epr-match
              use matching heuristics for EPR instantiation [*]

       --local-t-ext
               do instantiation based on local theory extensions [*]

       --lte-partial-inst
               partially instantiate local theory quantifiers [*]

       --lte-restrict-inst-closure
               treat arguments of inst closure as restricted terms for instantiation [*]

       --quant-alpha-equiv
               infer alpha equivalence between quantified formulas [*]

       --macros-quant
              perform quantifiers macro expansion [*]

       --macros-quant-mode=MODE
              mode for quantifiers macro expansion

       --quant-dsplit-mode=MODE
              mode for dynamic quantifiers splitting

       --quant-anti-skolem
              perform anti-skolemization for quantified formulas [*]

       --quant-ee
               maintain congrunce closure over universal equalities [*]

       --track-inst-lemmas
               track instantiation lemmas (for proofs, unsat cores, qe and synthesis minimization) [*]

SEP OPTIONS

       --sep-check-neg
              check negated spatial assertions [*]

       --sep-exp
              experimental flag for sep [*]

       --sep-min-refine
              only add refinement lemmas for minimal (innermost) assertions [*]

       --sep-deq-c
              assume cardinality elements are distinct [*]

       --sep-pre-skolem-emp
              eliminate emp constraint at preprocess time [*]

       --sep-child-refine
              child-specific refinements of negated star, positive wand [*]

SETS OPTIONS

       --sets-proxy-lemmas
              introduce proxy variables eagerly to shorten lemmas [*]

       --sets-infer-as-lemmas
              send inferences as lemmas [*]

       --sets-rel-eager
              standard effort checks for relations [*]

       --sets-ext
              enable extended symbols such as complement and universe in theory of sets [*]

SMT LAYER OPTIONS

       --force-logic=LOGIC
              set the logic, and override all further user attempts to change it (EXPERTS only)

       --simplification=MODE
              choose simplification mode, see --simplification=help

       --no-simplification
              turn off all simplification (same as --simplification=none)

       --static-learning
              use static learning (on by default) [*]

       --check-models
              after SAT/INVALID/UNKNOWN, check that the generated model satisfies user assertions [*]

       --dump-models
              output models after every SAT/INVALID/UNKNOWN response [*]

       --omit-dont-cares
              When producing a model, omit variables whose value does not matter [*]

       --proof
              turn on proof generation [*]

       --check-proofs
              after UNSAT/VALID, machine-check the generated proof [*]

       --dump-proofs
              output proofs after every UNSAT/VALID response [*]

       --dump-instantiations
              output instantiations of quantified formulas after every UNSAT/VALID response [*]

       --dump-synth
              output solution for synthesis conjectures after every UNSAT/VALID response [*]

       --produce-unsat-cores
              turn on unsat core generation [*]

       --check-unsat-cores
              after UNSAT/VALID, produce and check an unsat core (expensive) [*]

       --dump-unsat-cores
              output unsat cores after every UNSAT/VALID response [*]

       --dump-unsat-cores-full
              dump the full unsat core, including unlabeled assertions [*]

       --produce-assignments
              support the get-assignment command [*]

       --ite-simp
              turn on ite simplification (Kim (and Somenzi) et al., SAT 2009) [*]

       --on-repeat-ite-simp
              do the ite simplification pass again if repeating simplification [*]

       --simp-with-care
              enables simplifyWithCare in ite simplificiation [*]

       --simp-ite-compress
              enables compressing ites after ite simplification [*]

       --unconstrained-simp
              turn on unconstrained simplification (see Bruttomesso/Brummayer PhD thesis) [*]

       --repeat-simp
              make multiple passes with nonclausal simplifier [*]

       --simp-ite-hunt-zombies
              post ite compression enables zombie removal while the number of nodes is above this threshold

       --sort-inference
              calculate sort inference of input problem, convert the input based on monotonic sorts [*]

       --abstract-values
              in models, output arrays (and in future, maybe others) using abstract values, as required  by  the
              SMT-LIB standard [*]

       --model-u-dt-enum
              in models, output uninterpreted sorts as datatype enumerations [*]

       --rewrite-step
              amount of resources spent for each rewrite step (EXPERTS only)

       --theory-check-step
              amount of resources spent for each theory check call (EXPERTS only)

       --decision-step
              amount of getNext decision calls in the decision engine (EXPERTS only)

       --bitblast-step
              amount of resources spent for each bitblast step (EXPERTS only)

       --parse-step
              amount of resources spent for each command/expression parsing (EXPERTS only)

       --lemma-step
              amount of resources spent when adding lemmas (EXPERTS only)

       --restart-step
              amount of resources spent for each theory restart (EXPERTS only)

       --cnf-step
              amount of resources spent for each call to cnf conversion (EXPERTS only)

       --preprocess-step
              amount of resources spent for each preprocessing step in SmtEngine (EXPERTS only)

       --quantifier-step
              amount of resources spent for quantifier instantiations (EXPERTS only)

       --sat-conflict-step
              amount of resources spent for each sat conflict (main sat solver) (EXPERTS only)

       --bv-sat-conflict-step
              amount of resources spent for each sat conflict (bitvectors) (EXPERTS only)

       --rewrite-apply-to-const
              eliminate function applications, rewriting e.g. f(5) to a new symbol f_5 (EXPERTS only) [*]

       --force-no-limit-cpu-while-dump
              Force no CPU limit when dumping models and proofs [*]

STRINGS THEORY OPTIONS

       --strings-exp
              experimental features in the theory of strings [*]

       --strings-lb=N
              the strategy of LB rule application: 0-lazy, 1-eager, 2-no

       --strings-std-ascii
              the alphabet contains only characters from the standard ASCII or the extended one [*]

       --strings-fmf
              the finite model finding used by the theory of strings [*]

       --strings-eager
              strings eager check [*]

       --strings-eit
              the eager intersection used by the theory of strings [*]

       --strings-opt1
              internal option1 for strings: normal form [*]

       --strings-opt2
              internal option2 for strings: constant regexp splitting [*]

       --strings-inm
              internal for strings: ignore negative membership constraints (fragment checking is needed, left to
              users for now) [*]

       --strings-lazy-pp
              perform string preprocessing lazily [*]

       --strings-len-geqz
              strings length greater than zero lemmas [*]

       --strings-len-norm
              strings length normalization lemma [*]

       --strings-sp-emp
              strings split on empty string [*]

       --strings-infer-sym
              strings split on empty string [*]

       --strings-eager-len
              strings eager length lemmas [*]

       --strings-check-entail-len
              check entailment between length terms to reduce splitting [*]

       --strings-process-loop
              reduce looping word equations to regular expressions [*]

       --strings-abort-loop
              abort when a looping word equation is encountered [*]

       --strings-infer-as-lemmas
              always send lemmas out instead of making internal inferences [*]

       --strings-rexplain-lemmas
              regression explanations for string lemmas [*]

       --strings-min-prefix-explain
              minimize explanations for prefix of normal forms in strings [*]

       --strings-guess-model
              use model guessing to avoid string extended function reductions [*]

       --strings-uf-reduct
              use uninterpreted functions when applying extended function reductions [*]

       --strings-binary-csp
              use binary search when splitting strings [*]

       --strings-lprop-csp
              do length propagation based on constant splits [*]

THEORY LAYER OPTIONS

       --theoryof-mode=MODE
              mode for Theory::theoryof() (EXPERTS only)

       --use-theory=NAME
              use alternate theory implementation NAME (--use-theory=help  for  a  list).  This  option  may  be
              repeated or a comma separated list.

UNINTERPRETED FUNCTIONS THEORY OPTIONS

       --symmetry-breaker
              use UF symmetry breaker (Deharbe et al., CADE 2011) [*]

       --condense-function-values
              condense models for functions rather than explicitly representing them [*]

       --uf-ss-regions
              disable region-based method for discovering cliques and splits in uf strong solver [*]

       --uf-ss-eager-split
              add splits eagerly for uf strong solver [*]

       --uf-ss-totality
              always use totality axioms for enforcing cardinality constraints [*]

       --uf-ss-totality-limited=N
              apply totality axioms, but only up to cardinality N (-1 == do not apply totality axioms, default)

       --uf-ss-totality-sym-break
              apply symmetry breaking for totality axioms [*]

       --uf-ss-abort-card=N
              tells the uf strong solver a cardinality to abort at (-1 == no limit, default)

       --uf-ss-explained-cliques
              use explained clique lemmas for uf strong solver [*]

       --uf-ss-simple-cliques
              always use simple clique lemmas for uf strong solver [*]

       --uf-ss-deq-prop
              eagerly propagate disequalities for uf strong solver [*]

       --uf-ss=MODE
              mode of operation for uf strong solver.

       --uf-ss-clique-splits
              use cliques instead of splitting on demand to shrink model [*]

       --uf-ss-sym-break
              finite model finding symmetry breaking techniques [*]

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

       Each option marked with [*] has a --no-OPTIONNAME variant, which reverses the sense of the option.

DIAGNOSTICS

       CVC4 reports all syntactic and semantic errors on standard error.

HISTORY

       The  CVC4  effort  is  the  culmination  of  fifteen years of theorem proving research, starting with the
       Stanford Validity Checker (SVC) in 1996.

       SVC's successor, the Cooperating Validity Checker (CVC), had a more optimized internal  design,  produced
       proofs,  used the Chaff SAT solver, and featured a number of usability enhancements.  Its name comes from
       the cooperative nature of decision procedures in Nelson-Oppen theory  combination,  which  share  amongst
       each other equalities between shared terms.

       CVC  Lite,  first  made  available in 2003, was a rewrite of CVC that attempted to make CVC more flexible
       (hence the “lite”) while extending the feature set: CVCLite supported quantifiers where its  predecessors
       did  not.   CVC3  was  a  major  overhaul  of  portions  of  CVC Lite: it added better decision procedure
       implementations, added support for using MiniSat in the core, and had generally better performance.

       CVC4 is the new version, the fifth generation of this validity  checker  line  that  is  now  celebrating
       fifteen  years  of  heritage.  It represents a complete re-evaluation of the core architecture to be both
       performant and to serve as a cutting-edge research vehicle for  the  next  several  years.   Rather  than
       taking  CVC3  and  redesigning  problem  parts, we've taken a clean-room approach, starting from scratch.
       Before using any designs from CVC3, we have thoroughly scrutinized, vetted, and updated them.  Many parts
       of CVC4 bear only a superficial resemblance, if any, to their correspondent in CVC3.

       However,  CVC4  is  fundamentally  similar  to  CVC3 and many other modern SMT solvers: it is a DPLL( T )
       solver, with  a  SAT  solver  at  its  core  and  a  delegation  path  to  different  decision  procedure
       implementations, each in charge of solving formulas in some background theory.

       The  re-evaluation and ground-up rewrite was necessitated, we felt, by the performance characteristics of
       CVC3.  CVC3 has many useful features, but some core aspects of the design led to high memory use, and the
       use of heavyweight computation (where more nimble engineering approaches could suffice) makes CVC3 a much
       slower prover than other tools.  As these designs are central to CVC3, a new version was preferable to  a
       selective re-engineering, which would have ballooned in short order.

VERSION

       This manual page refers to CVC4 version 1.5.

BUGS

       A Bugzilla for the CVC4 project is maintained at http://cvc4.cs.nyu.edu/bugzilla3/.

AUTHORS

       CVC4  is  developed  by a team of researchers at New York University and the University of Iowa.  See the
       AUTHORS file in the distribution for a full list of contributors.

SEE ALSO

       The CVC4 wiki contains useful information about the design and internals of CVC4.  It  is  maintained  at
       http://cvc4.cs.nyu.edu/wiki/.