6 #include <carl-common/util/enum_util.h>
30 assert(
false &&
"Invalid enum value for ConstraintType");
31 return os <<
"ConstraintType(" << carl::underlying_enum_value(ct) <<
")";
35 namespace constraint_type {
39 assert(model.find(next) == model.end());
40 carl::carlVariables
vars;
41 carl::variables(t,
vars);
43 bool foundNext =
false;
49 if (model.find(
var) == model.end()) {
63 carl::carlVariables
vars;
64 carl::variables(t,
vars);
75 carl::carlVariables
vars;
76 carl::variables(t,
vars);
78 if (model.find(
var) == model.end())
return false;
bool is_univariate(const T &t, const Model &model, carl::Variable next)
Checks whether the constraint contains only a single unassigned variable, and this is the next one.
bool isUnassigned(const T &t, const Model &model, carl::Variable next)
Checks whether the constraint contains an unassigned variable that is not the next one.
bool isAssigned(const T &t, const Model &model)
Checks whether all variables contained in the constraint are assigned in the model.
ConstraintType categorize(const T &t, const Model &model, carl::Variable next)
bool is_constant(const T &t)
Checks whether the constraint is constant, i.e.
std::ostream & operator<<(std::ostream &os, const Bookkeeping &bk)
ConstraintType
This type categorizes constraints with respect to a given (partial) model and the next variable to be...
@ Unassigned
The constraint has a single unassigned variable being the next one.
@ Univariate
The constraint is fully assigned.
@ Assigned
The constraint contains no variables.
std::vector< carl::Variable > vars(const std::pair< QuantifierType, std::vector< carl::Variable >> &p)
Class to create the formulas for axioms.
carl::Model< Rational, Poly > Model