3 #include <carl-arith/groebner/groebner.h>
9 #ifdef SMTRAT_DEVOPTION_Statistics
16 template<
typename Settings>
23 template<
class Settings>
27 typedef typename Settings::PolynomialWithReasons
Polynomial;
28 typedef typename Settings::MultivariateIdeal
Ideal;
30 typedef typename std::pair<unsigned, Polynomial>
CellEntry;
31 typedef typename std::tuple<ModuleInput::iterator, carl::Relation, std::list<CellEntry> >
RowEntry;
32 typedef typename std::map<ModuleInput::const_iterator, RowEntry, ModuleInput::IteratorCompare>
Rows;
33 typedef typename std::pair<ModuleInput::const_iterator, RowEntry>
Row;
34 typedef typename std::map<carl::Variable, std::pair<TermT, carl::BitVector> >
RewriteRules;
70 void print( std::ostream& os = std::cout )
const;
74 #ifdef SMTRAT_DEVOPTION_Statistics
75 GBModuleStats& mStats = GBModuleStats::getInstance(Settings::identifier);
A solver module based on Groebner basis.
Datastructure for the GBModule.
Answer reduceWRTGroebnerBasis(const Ideal &gb, const RewriteRules &rules)
std::pair< unsigned, Polynomial > CellEntry
Rows mReducedInequalities
A map of pointers from received iterators to rows.
bool reduceWRTVariableRewriteRules(typename Rows::iterator it, const RewriteRules &rules)
unsigned mBtnumber
The actual number of backtrackpoints.
Rows::iterator mNewConstraints
void popBacktrackPoint(unsigned nrBacktracks)
void print(std::ostream &os=std::cout) const
Settings::MultivariateIdeal Ideal
std::map< carl::Variable, std::pair< TermT, carl::BitVector > > RewriteRules
InequalitiesTable(GBModule< Settings > *module)
Answer reduceWRTVariableRewriteRules(const RewriteRules &rules)
bool reduceWRTGroebnerBasis(typename Rows::iterator, const Ideal &gb, const RewriteRules &rules)
std::tuple< ModuleInput::iterator, carl::Relation, std::list< CellEntry > > RowEntry
void pushBacktrackPoint()
std::map< ModuleInput::const_iterator, RowEntry, ModuleInput::IteratorCompare > Rows
Answer reduceWRTVariableRewriteRules(const std::list< typename Rows::iterator > &ineqToBeReduced, const RewriteRules &rules)
GBModule< Settings > * mModule
A pointer to the GBModule which uses this table.
void removeInequality(ModuleInput::const_iterator _formula)
std::pair< ModuleInput::const_iterator, RowEntry > Row
Settings::PolynomialWithReasons Polynomial
Answer reduceWRTGroebnerBasis(const std::list< typename Rows::iterator > &ineqToBeReduced, const Ideal &gb, const RewriteRules &rules)
Rows::iterator InsertReceivedFormula(ModuleInput::const_iterator received)
Class to create the formulas for axioms.
Answer
An enum with the possible answers a Module can give.