18 #include <carl-arith/groebner/groebner.h>
28 #ifdef SMTRAT_DEVOPTION_Statistics
44 template<
class Settings>
51 return SettingsType::moduleName;
53 typedef typename Settings::Order
Order;
55 typedef typename Settings::MultivariateIdeal
Ideal;
126 #ifdef SMTRAT_DEVOPTION_Statistics
127 GBModuleStats& mStats = statistics_get<GBModuleStats>(
"GroebnerBasis");
128 GBCalculationStats& mGBStats = statistics_get<GBCalculationStats>(
"GB Calculation");
carl::BitVector BitVector
A solver module based on Groebner basis.
std::string moduleName() const
FormulaSetT generateReasonSet(const carl::BitVector &reasons)
GBPolynomial callGroebnerToSDP(const Ideal &gb)
void processNewConstraint(ModuleInput::const_iterator _formula)
bool mRecalculateGB
After popping in the history, it might be necessary to recalculate. This flag indicates this.
FormulasT mGbEqualities
A workaround to associate equalities in the passed formula originating from the gb (in contrast to th...
Settings::PolynomialWithReasons GBPolynomial
InequalitiesTable< Settings > mInequalities
The inequalities table for handling inequalities.
virtual Answer checkCore()
Checks the received formula for consistency.
bool constraintByGB(carl::Relation cr)
groebner::RewriteRules mRewriteRules
The rewrite rules for the variables.
void pushBacktrackPoint(ModuleInput::const_iterator btpoint)
void factorisedConstraintDeduction(const std::list< GBPolynomial > &factorisation, const carl::BitVector &reasons)
std::map< ConstraintT, carl::Variable > mAdditionalVarMap
void newConstraintDeduction()
GBPolynomial transformIntoEquality(ModuleInput::const_iterator constraint)
FormulasT generateReasons(const carl::BitVector &reasons)
bool iterativeVariableRewriting()
bool findTrivialFactorisations()
void handleConstraintToGBQueue(ModuleInput::const_iterator _formula)
void knownConstraintDeduction(const std::list< std::pair< carl::BitVector, carl::BitVector > > &deductions)
void removeReceivedFormulaFromNewInequalities(ModuleInput::const_iterator _formula)
void handleConstraintNotToGB(ModuleInput::const_iterator _formula)
Settings::MultivariateIdeal Ideal
GBPolynomial rewriteVariable(const GBPolynomial &, const carl::Variable &, const TermT &, const BitVector &)
void removeCore(ModuleInput::const_iterator _formula)
std::vector< ModuleInput::const_iterator > mBacktrackPoints
The vector of backtrack points, which has pointers to received constraints.
std::list< typename InequalitiesTable< Settings >::Rows::iterator > mNewInequalities
A list of inequalities which were added after the last consistency check.
std::list< GBModuleState< Settings > > mStateHistory
Saves the relevant history to support backtracking.
void popBacktrackPoint(ModuleInput::const_iterator btpoint)
GBModule(const ModuleInput *const, Conditionals &, Manager *const =NULL)
Settings::Groebner mBasis
The current Groebner basis.
bool addCore(ModuleInput::const_iterator _formula)
void removeSubformulaFromPassedFormula(ModuleInput::iterator _formula)
Datastructure for the GBModule.
A base class for all kind of theory solving methods.
std::map< carl::Variable, std::pair< TermT, carl::BitVector > > RewriteRules
Class to create the formulas for axioms.
carl::FormulaSet< Poly > FormulaSetT
carl::Term< Rational > TermT
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