25 virtual std::string
name() {
return "unspecified PseudoBoolEncoder"; }
Base class for a PseudoBoolean Encoder.
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
virtual std::string name()
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