d_ierCounter_lc = 0;
d_ierCounterLastLc = 0;
d_inst_when_phase = 1 + ( options::instWhenPhase()<1 ? 1 : options::instWhenPhase() );
-}
-QuantifiersEngine::~QuantifiersEngine(){
- delete d_alpha_equiv;
- delete d_builder;
- delete d_qepr;
- delete d_rr_engine;
- delete d_bint;
- delete d_model_engine;
- delete d_inst_engine;
- delete d_qcf;
- delete d_quant_rel;
- delete d_rel_dom;
- delete d_bv_invert;
- delete d_model;
- delete d_tr_trie;
- delete d_term_db;
- delete d_sygus_tdb;
- delete d_term_util;
- delete d_eq_inference;
- delete d_eq_query;
- delete d_sg_gen;
- delete d_ceg_inst;
- delete d_lte_part_inst;
- delete d_fun_def_engine;
- delete d_uee;
- delete d_fs;
- delete d_i_cbqi;
- delete d_qsplit;
- delete d_anti_skolem;
- delete d_inst_prop;
-}
-
-EqualityQuery* QuantifiersEngine::getEqualityQuery() {
- return d_eq_query;
-}
-
-context::Context* QuantifiersEngine::getSatContext(){
- return d_te->theoryOf( THEORY_QUANTIFIERS )->getSatContext();
-}
-
-context::UserContext* QuantifiersEngine::getUserContext(){
- return d_te->theoryOf( THEORY_QUANTIFIERS )->getUserContext();
-}
-
-OutputChannel& QuantifiersEngine::getOutputChannel(){
- return d_te->theoryOf( THEORY_QUANTIFIERS )->getOutputChannel();
-}
-/** get default valuation for the quantifiers engine */
-Valuation& QuantifiersEngine::getValuation(){
- return d_te->theoryOf( THEORY_QUANTIFIERS )->getValuation();
-}
-
-void QuantifiersEngine::finishInit(){
- context::Context * c = getSatContext();
- Trace("quant-engine-debug") << "QuantifiersEngine : finishInit " << std::endl;
bool needsBuilder = false;
bool needsRelDom = false;
//add quantifiers modules
}
}
+QuantifiersEngine::~QuantifiersEngine()
+{
+ delete d_alpha_equiv;
+ delete d_builder;
+ delete d_qepr;
+ delete d_rr_engine;
+ delete d_bint;
+ delete d_model_engine;
+ delete d_inst_engine;
+ delete d_qcf;
+ delete d_quant_rel;
+ delete d_rel_dom;
+ delete d_bv_invert;
+ delete d_model;
+ delete d_tr_trie;
+ delete d_term_db;
+ delete d_sygus_tdb;
+ delete d_term_util;
+ delete d_eq_inference;
+ delete d_eq_query;
+ delete d_sg_gen;
+ delete d_ceg_inst;
+ delete d_lte_part_inst;
+ delete d_fun_def_engine;
+ delete d_uee;
+ delete d_fs;
+ delete d_i_cbqi;
+ delete d_qsplit;
+ delete d_anti_skolem;
+ delete d_inst_prop;
+}
+
+EqualityQuery* QuantifiersEngine::getEqualityQuery() { return d_eq_query; }
+
+context::Context* QuantifiersEngine::getSatContext()
+{
+ return d_te->theoryOf(THEORY_QUANTIFIERS)->getSatContext();
+}
+
+context::UserContext* QuantifiersEngine::getUserContext()
+{
+ return d_te->theoryOf(THEORY_QUANTIFIERS)->getUserContext();
+}
+
+OutputChannel& QuantifiersEngine::getOutputChannel()
+{
+ return d_te->theoryOf(THEORY_QUANTIFIERS)->getOutputChannel();
+}
+/** get default valuation for the quantifiers engine */
+Valuation& QuantifiersEngine::getValuation()
+{
+ return d_te->theoryOf(THEORY_QUANTIFIERS)->getValuation();
+}
+
QuantifiersModule * QuantifiersEngine::getOwner( Node q ) {
std::map< Node, QuantifiersModule * >::iterator it = d_owner.find( q );
if( it==d_owner.end() ){
}
void TheoryEngine::finishInit() {
- // initialize the quantifiers engine
- d_quantEngine = new QuantifiersEngine(d_context, d_userContext, this);
//initialize the quantifiers engine, master equality engine, model, model builder
if( d_logicInfo.isQuantified() ) {
- d_quantEngine->finishInit();
+ // initialize the quantifiers engine
+ d_quantEngine = new QuantifiersEngine(d_context, d_userContext, this);
Assert(d_masterEqualityEngine == 0);
d_masterEqualityEngine = new eq::EqualityEngine(d_masterEENotify,getSatContext(), "theory::master", false);
void TheoryEngine::getSynthSolutions(std::map<Node, Node>& sol_map)
{
- d_quantEngine->getSynthSolutions(sol_map);
+ if (d_quantEngine)
+ {
+ d_quantEngine->getSynthSolutions(sol_map);
+ }
+ else
+ {
+ Assert(false);
+ }
}
bool TheoryEngine::presolve() {
d_quantEngine->printInstantiations( out );
}else{
out << "Internal error : instantiations not available when quantifiers are not present." << std::endl;
+ Assert(false);
}
}
d_quantEngine->printSynthSolution( out );
}else{
out << "Internal error : synth solution not available when quantifiers are not present." << std::endl;
+ Assert(false);
}
}