Enumerations¶
-
enum class stp::api::CnfScope : std::uint8_t¶
How a CNF a check hands to the SAT solver relates to the query (Solver::set_cnf_sink, Solver::write_cnf): the whole query; partial, a refinement still to come (array reads, uninterpreted functions, Real arithmetic, the floating-point abstraction) adding what the search asks for; or an over-approximation, the bit-vector abstractions having replaced operations with free inputs.
Values:
-
enumerator WHOLE¶
-
enumerator PARTIAL¶
-
enumerator OVER_APPROXIMATION¶
-
enumerator WHOLE¶
-
enum class stp::api::ErrorCode : std::uint16_t¶
Error codes (errors.toml). RESOURCE and INTERNAL are the two unsafe codes.
Values:
-
enumerator INVALID_ARGUMENT¶
-
enumerator SORT_MISMATCH¶
-
enumerator ARITY¶
-
enumerator INDEX_OUT_OF_RANGE¶
-
enumerator VALUE_OUT_OF_RANGE¶
-
enumerator DOES_NOT_FIT¶
-
enumerator NOT_A_VALUE¶
-
enumerator NO_MODEL¶
-
enumerator FOREIGN_MANAGER¶
-
enumerator NULL_HANDLE¶
-
enumerator UNSUPPORTED¶
-
enumerator OPTION_UNKNOWN¶
-
enumerator OPTION_VALUE¶
-
enumerator OPTION_TIMING¶
-
enumerator OPTION_CONFLICT¶
-
enumerator OPTION_UNAVAILABLE¶
-
enumerator PARSE¶
-
enumerator IO¶
-
enumerator STATE¶
-
enumerator RESOURCE¶
-
enumerator INTERNAL¶
-
enumerator INVALID_ARGUMENT¶
-
enum class stp::api::Format : std::uint8_t¶
Values:
-
enumerator AUTO¶
-
enumerator SMTLIB2¶
-
enumerator DOT¶
-
enumerator GDL¶
-
enumerator AUTO¶
-
enum class stp::api::InternalErrorPolicy : std::uint8_t¶
Values:
-
enumerator POISON¶
-
enumerator ABORT¶
-
enumerator POISON¶
-
enum class stp::api::Kind : std::uint16_t¶
Term kinds: one entry per public operator (kinds.toml), each value pinned by its id.
Values:
-
enumerator VALUE¶
() -> T
-
enumerator CONSTANT¶
() -> T
-
enumerator ITE¶
(Bool, T, T) -> T
-
enumerator EQUAL¶
(T, T) -> Bool
-
enumerator DISTINCT¶
(T, T, …) -> Bool
-
enumerator APPLY¶
(Fun[D..,C], D..) -> C
-
enumerator NOT¶
(Bool) -> Bool
-
enumerator AND¶
(Bool, …) -> Bool
-
enumerator OR¶
(Bool, …) -> Bool
-
enumerator XOR¶
(Bool, …) -> Bool
-
enumerator IMPLIES¶
(Bool, Bool) -> Bool
-
enumerator BV_NOT¶
(BV[n]) -> BV[n]
-
enumerator BV_AND¶
(BV[n], BV[n], …) -> BV[n]
-
enumerator BV_OR¶
(BV[n], BV[n], …) -> BV[n]
-
enumerator BV_XOR¶
(BV[n], BV[n], …) -> BV[n]
-
enumerator BV_NAND¶
(BV[n], BV[n]) -> BV[n]
-
enumerator BV_NOR¶
(BV[n], BV[n]) -> BV[n]
-
enumerator BV_XNOR¶
(BV[n], BV[n]) -> BV[n]
-
enumerator BV_NEG¶
(BV[n]) -> BV[n]
-
enumerator BV_ADD¶
(BV[n], BV[n], …) -> BV[n]
-
enumerator BV_SUB¶
(BV[n], BV[n]) -> BV[n]
-
enumerator BV_MUL¶
(BV[n], BV[n], …) -> BV[n]
-
enumerator BV_UDIV¶
(BV[n], BV[n]) -> BV[n]
-
enumerator BV_UREM¶
(BV[n], BV[n]) -> BV[n]
-
enumerator BV_SDIV¶
(BV[n], BV[n]) -> BV[n]
-
enumerator BV_SREM¶
(BV[n], BV[n]) -> BV[n]
-
enumerator BV_SMOD¶
(BV[n], BV[n]) -> BV[n]
-
enumerator BV_SHL¶
(BV[n], BV[n]) -> BV[n]
-
enumerator BV_LSHR¶
(BV[n], BV[n]) -> BV[n]
-
enumerator BV_ASHR¶
(BV[n], BV[n]) -> BV[n]
-
enumerator BV_CONCAT¶
(BV[a], BV[b], …) -> BV[a+b+…]
-
enumerator BV_EXTRACT¶
(BV[n]) -> BV[hi-lo+1] with n > hi >= lo
-
enumerator BV_ZERO_EXTEND¶
(BV[n]) -> BV[n+k]
-
enumerator BV_SIGN_EXTEND¶
(BV[n]) -> BV[n+k]
-
enumerator BV_REPEAT¶
(BV[n]) -> BV[n*k] with k >= 1
-
enumerator BV_ROTATE_LEFT¶
(BV[n]) -> BV[n]
-
enumerator BV_ROTATE_RIGHT¶
(BV[n]) -> BV[n]
-
enumerator BV_COMP¶
(BV[n], BV[n]) -> BV[1]
-
enumerator BV_ULT¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_ULE¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_UGT¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_UGE¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_SLT¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_SLE¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_SGT¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_SGE¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_UADDO¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_SADDO¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_UMULO¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_SMULO¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_USUBO¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_SSUBO¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_NEGO¶
(BV[n]) -> Bool
-
enumerator BV_SDIVO¶
(BV[n], BV[n]) -> Bool
-
enumerator BV_REDAND¶
(BV[n]) -> BV[1]
-
enumerator BV_REDOR¶
(BV[n]) -> BV[1]
-
enumerator SELECT¶
(Array[I,E], I) -> E
-
enumerator STORE¶
(Array[I,E], I, E) -> Array[I,E]
-
enumerator CONST_ARRAY¶
(E) -> Array[I,E] (the array sort is an argument of mk_const_array)
-
enumerator FP_ABS¶
(FP[e,s]) -> FP[e,s]
-
enumerator FP_NEG¶
(FP[e,s]) -> FP[e,s]
-
enumerator FP_ADD¶
(RM, FP[e,s], FP[e,s]) -> FP[e,s]
-
enumerator FP_SUB¶
(RM, FP[e,s], FP[e,s]) -> FP[e,s]
-
enumerator FP_MUL¶
(RM, FP[e,s], FP[e,s]) -> FP[e,s]
-
enumerator FP_DIV¶
(RM, FP[e,s], FP[e,s]) -> FP[e,s]
-
enumerator FP_FMA¶
(RM, FP[e,s], FP[e,s], FP[e,s]) -> FP[e,s]
-
enumerator FP_SQRT¶
(RM, FP[e,s]) -> FP[e,s]
-
enumerator FP_REM¶
(FP[e,s], FP[e,s]) -> FP[e,s]
-
enumerator FP_RTI¶
(RM, FP[e,s]) -> FP[e,s]
-
enumerator FP_MIN¶
(FP[e,s], FP[e,s]) -> FP[e,s]
-
enumerator FP_MAX¶
(FP[e,s], FP[e,s]) -> FP[e,s]
-
enumerator FP_EQ¶
(FP[e,s], FP[e,s]) -> Bool
-
enumerator FP_LT¶
(FP[e,s], FP[e,s]) -> Bool
-
enumerator FP_LEQ¶
(FP[e,s], FP[e,s]) -> Bool
-
enumerator FP_GT¶
(FP[e,s], FP[e,s]) -> Bool
-
enumerator FP_GEQ¶
(FP[e,s], FP[e,s]) -> Bool
-
enumerator FP_IS_NORMAL¶
(FP[e,s]) -> Bool
-
enumerator FP_IS_SUBNORMAL¶
(FP[e,s]) -> Bool
-
enumerator FP_IS_ZERO¶
(FP[e,s]) -> Bool
-
enumerator FP_IS_INF¶
(FP[e,s]) -> Bool
-
enumerator FP_IS_NAN¶
(FP[e,s]) -> Bool
-
enumerator FP_IS_NEG¶
(FP[e,s]) -> Bool
-
enumerator FP_IS_POS¶
(FP[e,s]) -> Bool
-
enumerator FP_FP¶
(BV[1], BV[e], BV[s-1]) -> FP[e,s]
-
enumerator FP_TO_FP_FROM_BV¶
(BV[e+s]) -> FP[e,s]
-
enumerator FP_TO_FP_FROM_FP¶
(RM, FP[e2,s2]) -> FP[e,s]
-
enumerator FP_TO_FP_FROM_SBV¶
(RM, BV[n]) -> FP[e,s]
-
enumerator FP_TO_FP_FROM_UBV¶
(RM, BV[n]) -> FP[e,s]
-
enumerator FP_TO_FP_FROM_REAL¶
(RM, Real) -> FP[e,s]
-
enumerator FP_TO_UBV¶
(RM, FP[e,s]) -> BV[m]
-
enumerator FP_TO_SBV¶
(RM, FP[e,s]) -> BV[m]
-
enumerator FP_TO_REAL¶
(FP[e,s]) -> Real
-
enumerator FP_TO_IEEE_BV¶
(FP[e,s]) -> BV[e+s]
-
enumerator REAL_ADD¶
(Real, Real, …) -> Real
-
enumerator REAL_SUB¶
(Real, Real) -> Real
-
enumerator REAL_NEG¶
(Real) -> Real
-
enumerator REAL_MUL¶
(Real, Real) -> Real
-
enumerator REAL_DIV¶
(Real, Real) -> Real
-
enumerator REAL_LT¶
(Real, Real) -> Bool
-
enumerator REAL_LE¶
(Real, Real) -> Bool
-
enumerator REAL_GT¶
(Real, Real) -> Bool
-
enumerator REAL_GE¶
(Real, Real) -> Bool
-
enumerator NUM_KINDS¶
-
enumerator VALUE¶
-
enum class stp::api::Option : std::uint16_t¶
The stable option tier as a typed enum (options.toml), each value pinned by its id.
Values:
-
enumerator PRODUCE_MODELS¶
produce-models
-
enumerator SAT_BACKEND¶
sat-backend
-
enumerator RANDOM_SEED¶
random-seed
-
enumerator MODEL_ARRAY_FILL¶
model-array-fill
-
enumerator LOGIC¶
logic
-
enumerator SIMPLIFY¶
simplify
-
enumerator DEFAULT_ROUNDING_MODE¶
default-rounding-mode
-
enumerator DISABLE_SIMPLIFICATIONS¶
disable-simplifications
-
enumerator THREADS¶
threads
-
enumerator ARRAY_EQUALITY¶
array-equality
-
enumerator BV_EQ_ABSTRACTION¶
bv-eq-abstraction
-
enumerator BV_TERM_ABSTRACTION¶
bv-term-abstraction
-
enumerator UNINTERPRETED_FUNCTIONS¶
uninterpreted-functions
-
enumerator UF_ACKERMANN¶
uf-ackermann
-
enumerator UF_SORT_WIDTH¶
uf-sort-width
-
enumerator FP_ABSTRACTION¶
fp-abstraction
-
enumerator CNF_GENERATION_EFFORT¶
cnf-generation-effort
-
enumerator INCREMENTAL¶
incremental
-
enumerator INCREMENTAL_AUTO_ENGAGE_AT¶
incremental-auto-engage-at
-
enumerator MAX_NUM_CONFL¶
max-num-confl
-
enumerator MAX_TIME¶
max-time
-
enumerator CHECK_SANITY¶
check-sanity
-
enumerator NUM_STABLE_OPTIONS¶
-
enumerator PRODUCE_MODELS¶
-
enum class stp::api::ParseMode : std::uint8_t¶
How a parse treats its input. DECLARE_AND_ASSERT: the input’s declarations, assertions and scopes take effect, silently; check-sat is not executed. EXECUTE: the input runs as the stp command line runs it, answering to the output sink: every command, under the script’s own set-logic. Its checks are the input’s, not the solver’s: they leave no result or model behind. As on the command line, an equality between whole arrays needs array-equality = on there (UNSUPPORTED otherwise). PARSE_ONLY: EXECUTE without the deciding (the command line’s —parse-only): check-sat is skipped. SINGLE_QUERY: a script as data. As DECLARE_AND_ASSERT, the script’s declarations, definitions and assertions are applied and its check-sat is not run, but nothing in it may change the solver’s configuration or state, and it must be one query: set-logic at most once, before any declaration or assertion; set-info (ignored); set-option for :print-success and :produce-models only (ignored); declare-const, declare-fun, declare-sort, define-fun, define-sort, define-const and assert; exactly one check-sat, after which only exit, any number of times. Any other command — push, pop, reset, reset-assertions, check-sat-assuming, a get-* request, echo, a second check-sat, a declaration after the check-sat, any other set-option — and a script with no check-sat are a PARSE error that names the command and its line. As after any parse that fails part way, in any mode, the solver is then as it was before the parse: its assertion stack, the symbols the script declared (not kept) and declared_logic().
Values:
-
enumerator DECLARE_AND_ASSERT¶
-
enumerator EXECUTE¶
-
enumerator PARSE_ONLY¶
-
enumerator SINGLE_QUERY¶
-
enumerator DECLARE_AND_ASSERT¶
-
enum class stp::api::RoundingMode : std::uint8_t¶
Contiguous; the engine’s one-hot carrier is internal.
Values:
-
enumerator RNE¶
-
enumerator RNA¶
-
enumerator RTP¶
-
enumerator RTN¶
-
enumerator RTZ¶
-
enumerator RNE¶
-
enum class stp::api::Settable : std::uint8_t¶
Values:
-
enumerator ANYTIME¶
-
enumerator BEFORE_FIRST_CHECK¶
-
enumerator CONSTRUCTION¶
-
enumerator ANYTIME¶
-
enum class stp::api::SortKind : std::uint8_t¶
Values:
-
enumerator BOOL¶
-
enumerator BV¶
-
enumerator FP¶
-
enumerator RM¶
-
enumerator REAL¶
-
enumerator ARRAY¶
-
enumerator FUN¶
-
enumerator UNINTERPRETED¶
-
enumerator BOOL¶
-
enum class stp::api::Tier : std::uint8_t¶
Values:
-
enumerator STABLE¶
-
enumerator EXPERT¶
-
enumerator EXPERIMENTAL¶
-
enumerator DIAGNOSTIC¶
-
enumerator STABLE¶
-
enum class stp::api::UnknownReason : std::uint8_t¶
Values:
-
enumerator NONE¶
the result is not unknown
-
enumerator TIMEOUT¶
a time budget expired
-
enumerator CONFLICT_LIMIT¶
a conflict budget expired
-
enumerator INTERRUPTED¶
interrupt() or a Terminator fired
-
enumerator INCOMPLETE¶
the decision procedure is incomplete for this input
-
enumerator RESOURCE_LIMIT¶
an internal resource budget (AIG nodes, …)
-
enumerator CARRIER_EXHAUSTED¶
an uninterpreted sort ran out of carrier width
-
enumerator ASSUMED_INJECTIVITY¶
the answer depended on an injectivity assumption
-
enumerator STOPPED_AFTER_CNF¶
option stop-after-cnf was set
-
enumerator OTHER¶
-
enumerator NONE¶