Finer-grained resource-limiting in quantifiers.
authorMorgan Deters <mdeters@cs.nyu.edu>
Fri, 26 Sep 2014 11:56:55 +0000 (07:56 -0400)
committerMorgan Deters <mdeters@cs.nyu.edu>
Fri, 26 Sep 2014 11:56:55 +0000 (07:56 -0400)
src/theory/quantifiers_engine.cpp

index 5dd3816c533340a4a86bf064ac78670fe44f3524..a4d7aaec12465cc770f89068bd42cdd6befb31a7 100644 (file)
@@ -576,9 +576,6 @@ bool QuantifiersEngine::existsInstantiation( Node f, InstMatch& m, bool modEq, b
 }
 
 bool QuantifiersEngine::addLemma( Node lem, bool doCache ){
-  // For resource-limiting (also does a time check).
-  getOutputChannel().spendResource();
-
   if( doCache ){
     Debug("inst-engine-debug") << "Adding lemma : " << lem << std::endl;
     lem = Rewriter::rewrite(lem);
@@ -603,6 +600,9 @@ void QuantifiersEngine::addRequirePhase( Node lit, bool req ){
 }
 
 bool QuantifiersEngine::addInstantiation( Node f, InstMatch& m, bool mkRep, bool modEq, bool modInst ){
+  // For resource-limiting (also does a time check).
+  getOutputChannel().spendResource();
+
   std::vector< Node > terms;
   //make sure there are values for each variable we are instantiating
   for( size_t i=0; i<f[0].getNumChildren(); i++ ){