diff options
Diffstat (limited to 'src/theory/quantifiers/cegqi/inst_strategy_cegqi.cpp')
-rw-r--r-- | src/theory/quantifiers/cegqi/inst_strategy_cegqi.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/theory/quantifiers/cegqi/inst_strategy_cegqi.cpp b/src/theory/quantifiers/cegqi/inst_strategy_cegqi.cpp index 037cb74d7..208933456 100644 --- a/src/theory/quantifiers/cegqi/inst_strategy_cegqi.cpp +++ b/src/theory/quantifiers/cegqi/inst_strategy_cegqi.cpp @@ -108,7 +108,7 @@ bool InstStrategyCegqi::registerCbqiLemma(Node q) //add counterexample lemma Node lem = NodeManager::currentNM()->mkNode( OR, ceLit.negate(), ceBody.negate() ); //require any decision on cel to be phase=true - d_quantEngine->addRequirePhase( ceLit, true ); + d_qim.addPendingPhaseRequirement(ceLit, true); Debug("cegqi-debug") << "Require phase " << ceLit << " = true." << std::endl; //add counterexample lemma lem = Rewriter::rewrite( lem ); @@ -259,7 +259,7 @@ void InstStrategyCegqi::check(Theory::Effort e, QEffort quant_e) clSet = double(clock())/double(CLOCKS_PER_SEC); Trace("cegqi-engine") << "---Cbqi Engine Round, effort = " << e << "---" << std::endl; } - unsigned lastWaiting = d_quantEngine->getNumLemmasWaiting(); + size_t lastWaiting = d_qim.numPendingLemmas(); for( int ee=0; ee<=1; ee++ ){ //for( unsigned i=0; i<d_quantEngine->getModel()->getNumAssertedQuantifiers(); i++ ){ // Node q = d_quantEngine->getModel()->getAssertedQuantifier( i ); @@ -273,15 +273,17 @@ void InstStrategyCegqi::check(Theory::Effort e, QEffort quant_e) break; } } - if (d_qstate.isInConflict() - || d_quantEngine->getNumLemmasWaiting() > lastWaiting) + if (d_qstate.isInConflict() || d_qim.numPendingLemmas() > lastWaiting) { break; } } if( Trace.isOn("cegqi-engine") ){ - if( d_quantEngine->getNumLemmasWaiting()>lastWaiting ){ - Trace("cegqi-engine") << "Added lemmas = " << (d_quantEngine->getNumLemmasWaiting()-lastWaiting) << std::endl; + if (d_qim.numPendingLemmas() > lastWaiting) + { + Trace("cegqi-engine") + << "Added lemmas = " << (d_qim.numPendingLemmas() - lastWaiting) + << std::endl; } double clSet2 = double(clock())/double(CLOCKS_PER_SEC); Trace("cegqi-engine") << "Finished cbqi engine, time = " << (clSet2-clSet) << std::endl; @@ -392,7 +394,7 @@ void InstStrategyCegqi::registerCounterexampleLemma(Node q, Node lem) { Trace("cegqi-debug") << "Auxiliary CE lemma " << i << " : " << auxLems[i] << std::endl; - d_quantEngine->addLemma(auxLems[i], false); + d_qim.addPendingLemma(auxLems[i]); } } @@ -491,11 +493,11 @@ bool InstStrategyCegqi::doAddInstantiation( std::vector< Node >& subs ) { } } -bool InstStrategyCegqi::addLemma( Node lem ) { - return d_quantEngine->addLemma( lem ); +bool InstStrategyCegqi::addPendingLemma(Node lem) const +{ + return d_qim.addPendingLemma(lem); } - CegInstantiator * InstStrategyCegqi::getInstantiator( Node q ) { std::map<Node, std::unique_ptr<CegInstantiator>>::iterator it = d_cinst.find(q); @@ -534,7 +536,7 @@ bool InstStrategyCegqi::processNestedQe(Node q, bool isPreregister) // add lemmas to process for (const Node& lem : lems) { - d_quantEngine->addLemma(lem); + d_qim.addPendingLemma(lem); } // don't need to process this, since it has been reduced return true; |