17 template<
typename Settings>
46 return SettingsType::moduleName;
std::unordered_map< UVariable, std::vector< FormulaT > > flat_substitution
CurryModule(const ModuleInput *_formula, Conditionals &_conditionals, Manager *_manager=nullptr)
void removeCore(ModuleInput::const_iterator _subformula)
Removes the subformula of the received formula at the given position to the considered ones of this m...
auto flatten(const FormulaT &formula) noexcept -> const std::vector< FormulaT > &
auto curry(const FormulaT &formula) noexcept -> FormulaT
std::unordered_map< UFunction, UTerm > constants_store
bool addCore(ModuleInput::const_iterator _subformula)
The module has to take the given sub-formula of the received formula into account.
std::unordered_map< FormulaT, FormulaT > formula_store
std::unordered_map< UTerm, UTerm > term_store
auto curry(const UTerm &term) noexcept -> UTerm
carl::UFInstance UFInstance
bool informCore(const FormulaT &_constraint)
Informs the module about the given constraint.
auto flatten(const UTerm &term, std::vector< FormulaT > &flat) noexcept -> UVariable
std::unordered_map< FormulaT, std::vector< FormulaT > > flattened_store
std::unordered_map< UTerm, UVariable > flattened_terms
Answer checkCore()
Checks the received formula for consistency.
carl::UninterpretedFunction UFunction
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::string moduleName() const
carl::UVariable UVariable
A base class for all kind of theory solving methods.
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.