6 assert(constraint.isPseudoBoolean());
7 assert(constraint.relation() != carl::Relation::GEQ);
8 assert(constraint.relation() != carl::Relation::GREATER);
10 assert(constraint.relation() != carl::Relation::NEQ);
15 if (constraint.relation() == carl::Relation::LESS) {
19 assert(constraint.relation() != carl::Relation::LESS);
26 assert(constraint.relation() == carl::Relation::LESS);
34 return Rational(std::numeric_limits<unsigned long>::max());
42 newSubformulas.push_back(newFormula);
virtual Rational encodingSize(const ConstraintT &constraint)
std::optional< FormulaT > encode(const ConstraintT &constraint)
Encodes an arbitrary constraint.
FormulaT generateVarChain(const std::set< carl::Variable > &vars, carl::FormulaType type)
virtual std::optional< FormulaT > doEncode(const ConstraintT &constraint)=0
virtual bool canEncode(const ConstraintT &constraint)=0
ConstraintT normalizeLessConstraint(const ConstraintT &constraint)
QuantifierType type(const std::pair< QuantifierType, std::vector< carl::Variable >> &p)
std::vector< carl::Variable > vars(const std::pair< QuantifierType, std::vector< carl::Variable >> &p)
Class to create the formulas for axioms.
carl::Formula< Poly > FormulaT
carl::Constraint< Poly > ConstraintT
carl::Formulas< Poly > FormulasT