a bit more changes, when propagting equalities/dis-equalities don't assert them to...
authorDejan Jovanović <dejan.jovanovic@gmail.com>
Sat, 10 Dec 2011 07:02:21 +0000 (07:02 +0000)
committerDejan Jovanović <dejan.jovanovic@gmail.com>
Sat, 10 Dec 2011 07:02:21 +0000 (07:02 +0000)
src/theory/theory_engine.cpp

index aa897b24439a2b1d14d12cb91d11aef1583cd1aa..5ef7480e8f51eab8c9bf46b6e9e75fa95bae666f 100644 (file)
@@ -590,10 +590,14 @@ void TheoryEngine::propagate(TNode literal, theory::TheoryId theory) {
         if (Theory::setContains(currentTheory, lhsNotified) && Theory::setContains(currentTheory, rhsNotified)) {
           // Normalize the equality
           Node equality = Rewriter::rewriteEquality(currentTheory, atom);
-          // The assertion
-          Node assertion = negated ? equality.notNode() : equality;
-          // Remember it to assert later
-          d_propagatedEqualities.push_back(SharedEquality(assertion, literal, theory, currentTheory));
+          if (equality.getKind() != kind::CONST_BOOLEAN) {
+            // The assertion
+            Node assertion = negated ? equality.notNode() : equality;
+            // Remember it to assert later
+            d_propagatedEqualities.push_back(SharedEquality(assertion, literal, theory, currentTheory));
+          } else {
+            Assert(negated || equality.getConst<bool>());
+          }
         }
       }
     }