stp - Man Page

Simple Theorem Prover SMT solver

Description

USAGE: stp [options] <input-file>

where input is SMTLIB1/2 or CVC depending on options and file extension

Most important options

-h [ --help ]

print this help

--version

print version number

Simplifications

--disable-simplifications

disable all simplifications

-w [ --switch-word ]

switch off wordlevel solver

-a [ --disable-opt-inc ]

disable rewriting simplifier

--disable-cbitp

disable constant bit propagation

--disable-equality

disable equality propagation

--size-reducing-only

size reducing simplifications only

--unconstrained-variable-elimination arg (=1)

Unconstrained variables are eliminated.

--aig-rewrite-passes arg (=0)

Iterations of AIG rewriting to perform

--flattening arg (=0)

Enable sharing-aware flattening of >2 arity nodes

--rewriting arg (=1)

Enable sharing-aware rewriting

--split-extracts arg (=1)

Create new variables for some extracts

--ite-context-simplifications arg (=0)

Use what is known to be true in an if-then-else node to simplify the true or false branches

--aig-core-simplification arg (=0)

Simplify the propositional core with AIGs

--use-intervals arg (=1)

Simplify with interval analysis

--pure-literals arg (=1)

Pure literals are replaced.

--always-true arg (=0)

Nodes that are always true (e.g. asserted) are replaced through out the problem by true

--merge-same arg (=0)

Uses simple boolean algebra rules to combine conjuncts at the top level

--bit-blast-simplification arg (=0)

Part-way through simplifying, convert to AIGs and look for bits that the AIGs figure out are true/false or the same as another node. If the difficulty is less than this number. -1 means always.

--size-reducing-fixed-point-limit arg (=0)

If the number of non-leaf nodes is fewer than this number, run size-reducing simplifications to a fixed-point. -1 means always.

--simplify-to-constants-only arg (=0) Use just the simplifications from the

potentially size increasing suite that transform nodes to constants

--difficulty-reversion arg (=1)

Undo size increasing simplifications if they haven't made the problem simpler

SAT Solver options

--cryptominisat

use cryptominisat as the solver. Only use CryptoMiniSat 5.0 or above (default).

--threads arg (=1)

Number of threads for cryptominisat

--simplifying-minisat

use installed simplifying minisat version as the solver

--minisat

use installed minisat version as the solver

Refinement options

-r [ --ackermanize ]

eagerly encode array-read axioms (Ackermannistaion)

Bit-blasting options

--bb.div-v1 arg (=1)

unsigned division encoding variant 1

--bb.div-v2 arg (=1)

unsigned division encoding variant 2

--bb.div-v3 arg (=0)

unsigned division encoding variant 3

--bb.add-v1 arg (=1)

addition encoding variant 1

--bb.add-v2 arg (=1)

addition encoding variant 2

--bb.vle-v1 arg (=1)

comparison encoding variant 1

--bb.mult-variant arg (=1)

unsigned multiplication variant

--bb.mult-v2 arg (=0)

unsigned multiplication variant 2

--bb.conjoin-constant arg (=0)

When constant-bit propagation detects a constant bit during AIG construction, assert the AIG node and replace it, in the AIG, by the constant bit

Printing options

-b [ --print-stpinput ]

print STP input back to cout

--print-back-CVC

print input in CVC format, then exit

--print-back-SMTLIB2

print input in SMT-LIB2 format, then exit

--print-back-SMTLIB1

print input in SMT-LIB1 format, then exit

--print-back-GDL

print AiSee's graph format, then exit

--print-back-dot

print dotty/neato's graph format, then exit

-p [ --print-counterex ]

print counterexample

-y [ --print-counterexbin ]

print counterexample in binary

-q [ --print-arrayval ]

print arrayval declared order

-s [ --print-functionstat ]

print function statistics

-t [ --print-quickstat ]

print quick statistics

-v [ --print-nodes ]

print nodes

-n [ --print-output ]

Print output

Input options

-m [ --SMTLIB1 ]

use the SMT-LIB1 format parser

--SMTLIB2

use the SMT-LIB2 format parser

--CVC

use the CVC format parser

Output options

--output-CNF

Save the CNF into output_[0..n].cnf. NOTE: variables cannot be mapped back, and problems solved by the preprocessing simplifier alone will not generate any CNF as the SAT solver is never invoked

--output-bench

save in ABC's bench format to output.bench

Output options

--exit-after-CNF

exit after the CNF has been generated

-g [ --max-num-confl ] arg (=-1)

Number of conflicts after which the SAT solver gives up. -1 means never

-k [ --max-time ] arg (=-1)

Number of seconds after which the SAT solver gives up. -1 means never.

-d [ --check-sanity ]

construct counterexample and check it

Hidden options

--file arg

input file

See Also

The full documentation for stp is maintained as a Texinfo manual.  If the info and stp programs are properly installed at your site, the command

info stp

should give you access to the complete manual.

Info

July 2024 stp 2.3.4