Short-circuit in TheoryArithPrivate::check(), care of Tim.
authorMorgan Deters <mdeters@cs.nyu.edu>
Mon, 17 Nov 2014 14:33:55 +0000 (09:33 -0500)
committerMorgan Deters <mdeters@cs.nyu.edu>
Mon, 17 Nov 2014 21:21:40 +0000 (16:21 -0500)
src/theory/arith/theory_arith_private.cpp

index d6537c56200a877d3e5ac7a638eb20f6fd6e4ed0..c8e7991a57e84bb82c5a3bbff28197c3ff3dc284 100644 (file)
@@ -3346,6 +3346,11 @@ bool TheoryArithPrivate::hasFreshArithLiteral(Node n) const{
 
 void TheoryArithPrivate::check(Theory::Effort effortLevel){
   Assert(d_currentPropagationList.empty());
+
+  if(done() && !Theory::fullEffort(effortLevel) && ( d_qflraStatus == Result::SAT) ){
+    return;
+  }
+
   TimerStat::CodeTimer checkTimer(d_containing.d_checkTime);
   //cout << "TheoryArithPrivate::check " << effortLevel << std::endl;
   Debug("effortlevel") << "TheoryArithPrivate::check " << effortLevel << std::endl;