14 #include <carl-arith/numbers/PrimeFactory.h>
15 #include <boost/math/common_factor.hpp>
34 template<
typename Settings>
38 #ifdef SMTRAT_DEVOPTION_Statistics
73 return SettingsType::moduleName;
A base class for all kind of theory solving methods.
ModuleStatistics & mStatistics
void removeCore(ModuleInput::const_iterator _subformula)
Removes the subformula of the received formula at the given position to the considered ones of this m...
std::vector< ConstraintT > mConstraints
std::map< ConstraintT, PseudoBoolEncoder * > encoderByConstraint
LongFormulaEncoder mLongFormulaEncoder
std::vector< PseudoBoolEncoder * > mEncoders
std::map< ConstraintT, FormulaT > formulaByConstraint
bool addCore(ModuleInput::const_iterator _subformula)
The module has to take the given sub-formula of the received formula into account.
std::map< ConstraintT, FormulaT > liaConstraintFormula
FormulaT convertSmallFormula(const ConstraintT &formula)
std::map< ConstraintT, Rational > conversionSizeByConstraint
std::vector< ConstraintT > liaConstraints
FormulaT interconnectVariables(const std::set< carl::Variable > &variables)
void extractConstraints(const FormulaT &formula)
TotalizerEncoder mTotalizerEncoder
std::map< ConstraintT, FormulaT > boolEncodings
PseudoBoolNormalizer mNormalizer
std::map< carl::Variable, carl::Variable > mVariablesCache
bool informCore(const FormulaT &_constraint)
Informs the module about the given constraint.
FormulaT forwardAsArithmetic(const ConstraintT &formula, const std::set< carl::Variable > &boolVariables)
void addConstraints(const FormulaT &formula)
std::vector< carl::Variable > mConnectedVars
ShortFormulaEncoder mShortFormulaEncoder
MixedSignEncoder mMixedSignEncoder
bool isTrivial(const ConstraintT &constraint)
void init()
Informs all backends about the so far encountered constraints, which have not yet been communicated.
bool isAllCoefficientsEqual(const ConstraintT &constraint)
std::vector< carl::Variable > mCheckedVars
Answer checkCore()
Checks the received formula for consistency.
CardinalityEncoder mCardinalityEncoder
bool encodeAsBooleanFormula(const ConstraintT &constraint)
void updateModel() const
Updates the current assignment into the model.
std::vector< ConstraintT > boolConstraints
std::string moduleName() const
FormulaT convertBigFormula(const ConstraintT &formula)
PBPPModule(const ModuleInput *_formula, Conditionals &_conditionals, Manager *_manager=nullptr)
FormulaT generateVarChain(const std::set< carl::Variable > &vars, carl::FormulaType type)
ExactlyOneCommanderEncoder mExactlyOneCommanderEncoder
FormulaT restoreFormula(const FormulaT &formula)
TotalizerEncoder implements the Totalizer encoding as described in "Incremental Cardinality Constrain...
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
const settings::Settings & Settings()
Answer
An enum with the possible answers a Module can give.
std::vector< std::atomic_bool * > Conditionals
A vector of atomic bool pointers.
carl::Constraint< Poly > ConstraintT