summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDejan Jovanović <dejan.jovanovic@gmail.com>2012-06-10 06:09:25 +0000
committerDejan Jovanović <dejan.jovanovic@gmail.com>2012-06-10 06:09:25 +0000
commit103d6a6aad30410f8d7546c25c1f5e67f1c334d7 (patch)
treed3e2a30a59618d38aa8882b1ef09f82170607283 /src
parente761ec344a7c9d9b5bff5f312cdb8932083e0bc8 (diff)
adding an assertion to trigger the problem of bug349 and the testcase
bv rewriter apparently deosn't have a proper normal form for equalities
Diffstat (limited to 'src')
-rw-r--r--src/theory/theory_engine.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/theory/theory_engine.cpp b/src/theory/theory_engine.cpp
index 0be232bfa..97c17222c 100644
--- a/src/theory/theory_engine.cpp
+++ b/src/theory/theory_engine.cpp
@@ -444,6 +444,11 @@ bool TheoryEngine::properConflict(TNode conflict) const {
<< conflict[i] << endl;
return false;
}
+ if (conflict[i] != Rewriter::rewrite(conflict[i])) {
+ Debug("properConflict") << "Bad conflict is due to atom not in normal form: "
+ << conflict[i] << " vs " << Rewriter::rewrite(conflict[i]) << endl;
+ return false;
+ }
}
} else {
if (! getPropEngine()->hasValue(conflict, value)) {
@@ -456,6 +461,11 @@ bool TheoryEngine::properConflict(TNode conflict) const {
<< conflict << endl;
return false;
}
+ if (conflict != Rewriter::rewrite(conflict)) {
+ Debug("properConflict") << "Bad conflict is due to atom not in normal form: "
+ << conflict << " vs " << Rewriter::rewrite(conflict) << endl;
+ return false;
+ }
}
return true;
}
@@ -1094,6 +1104,7 @@ void TheoryEngine::conflict(TNode conflict, TheoryId theoryId) {
getExplanation(explanationVector);
Node fullConflict = mkExplanation(explanationVector);
Debug("theory::conflict") << "TheoryEngine::conflict(" << conflict << ", " << theoryId << "): full = " << fullConflict << std::endl;
+ Assert(properConflict(fullConflict));
lemma(fullConflict, true, false);
} else {
// When only one theory, the conflict should need no processing
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback