diff options
author | Clark Barrett <barrett@cs.nyu.edu> | 2012-04-27 19:26:01 +0000 |
---|---|---|
committer | Clark Barrett <barrett@cs.nyu.edu> | 2012-04-27 19:26:01 +0000 |
commit | 0168ec9f128246d1a6a0a34f7ee59aec109b7782 (patch) | |
tree | eae4e1fbe2970feb917c1e26b3b6036152ceca28 /src/theory/theory_engine.h | |
parent | f813ed144b0945334e03bfd769ea3c2cf8b75843 (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.h | 13 |
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)); + } } /** |