16 #include <boost/container/flat_set.hpp>
28 #include <carl-arith/ran/Conversion.h>
29 #include <carl-arith/poly/Conversion.h>
30 #include <carl-arith/ran/ran.h>
35 template<
typename Settings>
A base class for all kind of theory solving methods.
void removeConstraintsSAT()
Removes the given constraints from the backend.
bool informCore(const FormulaT &_constraint)
Informs the module about the given constraint.
bool removeConstraintsUNSAT()
Removes the given constraints from the backend Also removes all stored information about the removed ...
void addConstraintsUNSAT()
Adds the given constraint to the backend.
Answer checkCore()
Checks the received formula for consistency.
carl::Assignment< cadcells::RAN > mLastAssignment
Backend< Settings > backend
std::vector< carl::Variable > mVariableOrdering
FormulasT mUnknownConstraints
bool addCore(ModuleInput::const_iterator _subformula)
The module has to take the given sub-formula of the received formula into account.
void removeCore(ModuleInput::const_iterator _subformula)
Removes the subformula of the received formula at the given position to the considered ones of this m...
void processAnswer()
Processes the current answer, i.e.
size_t addConstraintsSAT()
Adds the given constraint to the backend.
void init()
Informs all backends about the so far encountered constraints, which have not yet been communicated.
void updateModel() const
Updates the current assignment into the model.
std::optional< Answer > doBacktracking()
The actual backtracking algorithm, which is called when we have constraints to add and no constraints...
std::optional< Answer > doIncremental()
The actual incremental algorithm, which is called when we have constraints to add and no constraints ...
std::optional< Answer > doIncrementalAndBacktracking()
Algorithms which contains backtracking and incremental checking, its called when we have constraints ...
NewCoveringModule(const ModuleInput *_formula, Conditionals &_conditionals, Manager *_manager=nullptr)
std::vector< ConstraintT > mAllConstraints
FormulasT mRemoveConstraints
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::Formulas< Poly > FormulasT