Model¶
-
class Model¶
A detached snapshot. One snapshot exists per successful check, taken at the first model()/value() call (or before the solver’s state changes) and shared by every Model handle afterwards. Never refuses, never mutates.
Public Functions
-
TermManager manager() const¶
-
Term value(const Term&) const¶
A VALUE of the term’s sort; any term of this manager, built before or after the check; symbols outside the core are COMPLETED with their sort’s default. An array’s value is a term with no symbol in it: the constant array of its default under a store per cell (array_value(t).as_term()). A function has no value term: SORT_MISMATCH, read it with function_value.
-
std::optional<Term> try_value(const Term&) const¶
nullopt instead of completing; an array is complete when its base is an array in the core (default included) or a constant array
-
FloatValue fp_value(const Term&) const¶
-
RoundingMode rm_value(const Term&) const¶
-
RationalValue real_value(const Term&) const¶
-
ArrayValue array_value(const Term&) const¶
any array-sorted term
-
FunctionValue function_value(const Term&) const¶
any function-sorted term
-
void array_bytes(const Term &array, std::uint64_t first_index, std::size_t count, std::uint8_t *out) const¶
Dense read of a BV-indexed, BV-element array whose element width is a multiple of 8: elements [first_index, first_index + count) as little-endian bytes per element, completed by the model’s array fill rule. INVALID_ARGUMENT when the interval leaves the index sort.
-
std::string to_smt2() const¶
the whole model
-
~Model()¶
-
TermManager manager() const¶