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.cpp | |
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.cpp')
-rw-r--r-- | src/theory/theory_engine.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/theory/theory_engine.cpp b/src/theory/theory_engine.cpp index 1bb830aa8..46a9f5855 100644 --- a/src/theory/theory_engine.cpp +++ b/src/theory/theory_engine.cpp @@ -936,3 +936,20 @@ void TheoryEngine::conflict(TNode conflict, TheoryId theoryId) { lemma(conflict, true, false); } } + + +//Conflict from shared terms database +void TheoryEngine::sharedConflict(TNode conflict) { + // Mark that we are in conflict + d_inConflict = true; + + if(Dump.isOn("t-conflicts")) { + Dump("t-conflicts") << CommentCommand("theory conflict: expect unsat") + << CheckSatCommand(conflict.toExpr()); + } + + Node fullConflict = explain(ExplainTask(d_sharedTerms.explain(conflict), SHARED_DATABASE_EXPLANATION)); + Assert(properConflict(fullConflict)); + Debug("theory") << "TheoryEngine::sharedConflict(" << conflict << "): " << fullConflict << std::endl; + lemma(fullConflict, true, false); +} |