SMT-RAT
24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
|
Represent the trail, i.e. More...
#include <Bookkeeping.h>
Public Member Functions | |
const auto & | model () const |
const auto & | assignedVariables () const |
const auto & | assignments () const |
const auto & | constraints () const |
const auto & | mvBounds () const |
const auto & | variables () const |
void | updateVariables (const carl::Variables &variables) |
void | pushConstraint (const FormulaT &f) |
Assert a constraint/literal. More... | |
void | popConstraint (const FormulaT &f) |
void | pushAssignment (carl::Variable v, const ModelValue &mv, const FormulaT &f) |
void | popAssignment (carl::Variable v) |
Private Attributes | |
Model | mModel |
Current (partial) model. More... | |
std::vector< carl::Variable > | mAssignedVariables |
Stack of (algebraic) variables being assigned. More... | |
std::vector< FormulaT > | mAssignments |
Stack of theory assignments, i.e. More... | |
std::vector< FormulaT > | mConstraints |
Stack of asserted constraints/literals. More... | |
std::vector< FormulaT > | mMVBounds |
Stack of asserted multivariate root bounds. More... | |
carl::Variables | mVariables |
Set of theory variables. More... | |
Represent the trail, i.e.
the assignment/model state, of a MCSAT run in different representations (kept in sync) for a fast access. Most notably, we store literals, i.e. a polynomial (in)equality-atom or its negation, which we assert to be true. Since the negation can be represented by an atom by flipping the (in)equality, it suffices to store only atoms. Here we call atomic formulas over the theory of real arithmetic "constraints".
Definition at line 19 of file Bookkeeping.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Assert a constraint/literal.
Definition at line 58 of file Bookkeeping.h.
|
inline |
Definition at line 53 of file Bookkeeping.h.
|
inline |
|
private |
Stack of (algebraic) variables being assigned.
Definition at line 23 of file Bookkeeping.h.
|
private |
Stack of theory assignments, i.e.
the values for the variables.
Definition at line 25 of file Bookkeeping.h.
|
private |
Stack of asserted constraints/literals.
Definition at line 27 of file Bookkeeping.h.
|
private |
Current (partial) model.
Definition at line 21 of file Bookkeeping.h.
|
private |
Stack of asserted multivariate root bounds.
Definition at line 29 of file Bookkeeping.h.
|
private |
Set of theory variables.
Definition at line 31 of file Bookkeeping.h.