summaryrefslogtreecommitdiff
path: root/src/theory/theory_engine.h
diff options
context:
space:
mode:
authorClark Barrett <barrett@cs.nyu.edu>2012-04-27 19:26:01 +0000
committerClark Barrett <barrett@cs.nyu.edu>2012-04-27 19:26:01 +0000
commit0168ec9f128246d1a6a0a34f7ee59aec109b7782 (patch)
treeeae4e1fbe2970feb917c1e26b3b6036152ceca28 /src/theory/theory_engine.h
parentf813ed144b0945334e03bfd769ea3c2cf8b75843 (diff)
Fixed warning in decision_engine.h, minor tweak to caregraph function in
arrays, fixed bug with equalities between constants in shared terms database
Diffstat (limited to 'src/theory/theory_engine.h')
-rw-r--r--src/theory/theory_engine.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/theory/theory_engine.h b/src/theory/theory_engine.h
index dd642a865..faa6bbd26 100644
--- a/src/theory/theory_engine.h
+++ b/src/theory/theory_engine.h
@@ -279,6 +279,11 @@ class TheoryEngine {
void conflict(TNode conflict, theory::TheoryId theoryId);
/**
+ * Called by shared terms database to notify of a conflict.
+ */
+ void sharedConflict(TNode conflict);
+
+ /**
* Debugging flag to ensure that shutdown() is called before the
* destructor.
*/
@@ -353,7 +358,13 @@ class TheoryEngine {
void propagateSharedLiteral(TNode literal, TNode original, theory::TheoryId theory)
{
- d_propagatedSharedLiterals.push_back(SharedLiteral(literal, original, theory));
+ if (literal.getKind() == kind::CONST_BOOLEAN) {
+ Assert(!literal.getConst<bool>());
+ sharedConflict(original);
+ }
+ else {
+ d_propagatedSharedLiterals.push_back(SharedLiteral(literal, original, theory));
+ }
}
/**
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback