processing assertions in bit-vectors even when in fullcheck (needed for sharing)
authorDejan Jovanović <dejan.jovanovic@gmail.com>
Fri, 6 Apr 2012 19:01:25 +0000 (19:01 +0000)
committerDejan Jovanović <dejan.jovanovic@gmail.com>
Fri, 6 Apr 2012 19:01:25 +0000 (19:01 +0000)
src/theory/bv/theory_bv.cpp

index e8e1aead66137bce44c13a31f94e7a68a5157d45..429e5ff19a807b4827021e4723ca5643b286f884 100644 (file)
@@ -73,24 +73,22 @@ void TheoryBV::preRegisterTerm(TNode node) {
 }
 
 void TheoryBV::check(Effort e) {
-  if (e == EFFORT_STANDARD) {
-    BVDebug("bitvector") << "TheoryBV::check " << e << "\n"; 
-    BVDebug("bitvector")<< "TheoryBV::check(" << e << ")" << std::endl;
-    while (!done()) {
-      TNode assertion = get();
-      // make sure we do not assert things we propagated 
-      if (!hasBeenPropagated(assertion)) {
-        BVDebug("bitvector-assertions") << "TheoryBV::check assertion " << assertion << "\n"; 
-        bool ok = d_bitblaster->assertToSat(assertion, true);
-        if (!ok) {
-          std::vector<TNode> conflictAtoms;
-          d_bitblaster->getConflict(conflictAtoms);
-          d_statistics.d_avgConflictSize.addEntry(conflictAtoms.size());
-          Node conflict = mkConjunction(conflictAtoms);
-          d_out->conflict(conflict);
-          BVDebug("bitvector") << "TheoryBV::check returns conflict: " <<conflict <<" \n ";
-          return;
-        }
+  BVDebug("bitvector") << "TheoryBV::check " << e << "\n";
+  BVDebug("bitvector")<< "TheoryBV::check(" << e << ")" << std::endl;
+  while (!done()) {
+    TNode assertion = get();
+    // make sure we do not assert things we propagated
+    if (!hasBeenPropagated(assertion)) {
+      BVDebug("bitvector-assertions") << "TheoryBV::check assertion " << assertion << "\n";
+      bool ok = d_bitblaster->assertToSat(assertion, true);
+      if (!ok) {
+        std::vector<TNode> conflictAtoms;
+        d_bitblaster->getConflict(conflictAtoms);
+        d_statistics.d_avgConflictSize.addEntry(conflictAtoms.size());
+        Node conflict = mkConjunction(conflictAtoms);
+        d_out->conflict(conflict);
+        BVDebug("bitvector") << "TheoryBV::check returns conflict: " <<conflict <<" \n ";
+        return;
       }
     }
   }