maat::ConstraintObject class

Constraint object representing constraints between symbolic expressions. This class should never be manipulated directly but used transparently through Constraint instances.

❱   Base classes

class Serializable
Virtual interface that serializable classes must implement.

❱   Constructors, destructors, conversion operators

ConstraintObject()
Dummy constructor used by deserializer.

ConstraintObject(ConstraintType t, Expr l, Expr r)
Constructor.

ConstraintObject(ConstraintType t, Constraint l, Constraint r)
Constructor.

❱   Public functions

auto invert() -> Constraint
Returns the inverse of the constraint.

auto contains_vars(const std::set<std::string>& var_names) -> bool
Return true if the constraint contains at least one of the variables listed in 'var_names'.

auto contained_vars() -> const std::set<std::string>&
Returns a reference to the set of abstract variables containted in the constraint.

auto class_uid() const -> serial::uid_t virtual
Return the class uid (see ClassId enum)

void dump(serial::Serializer&) const virtual
Dump the object contents in a serializer stream.

void load(serial::Deserializer&) virtual
Restore an object from a deserializer stream.

❱   Public variables

ConstraintType type
Type of constraint (equal, less than, less or equal, AND, OR, ...)

Expr left_expr
Left member of the constraint if arithmetic constraint between symbolic expressions.

Expr right_expr
Right member of the constraint if arithmetic constraint between symbolic expressions.

Constraint left_constr
Left member of the constraint if combination of other constraints (OR/AND)

Constraint right_constr
Right member of the constraint if combination of other constraints (OR/AND)