virtual rClause getExplanation(const Lit&){ throw idpexception("Error: incorrect execution path.");}
virtual void notifyNewDecisionLevel(){ throw idpexception("Error: incorrect execution path."); }
Factory& getFactory(TheoryID id) { if(id!=getTheoryID()){ throw idpexception("Invalid code path"); } return *factory; }
void addOptimization(OptimStatement optim) { if(parsingfinished){ throw idpexception("Cannot add additional optimizations after finishParsing has been called."); } optimization.push_back(optim); }
virtual void notifyBacktrack(int, const Lit&) { throw idpexception("Invalid code path."); }
virtual void notifyNewDecisionLevel() { throw idpexception("Invalid code path."); }
// Propagator methods virtual rClause getExplanation(const Lit&) { throw idpexception("Invalid code path."); }