diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2012-11-30 20:38:45 +0000 |
---|---|---|
committer | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2012-11-30 20:38:45 +0000 |
commit | f28bab562105548413cfca93de5c9b047157a076 (patch) | |
tree | bfbe95b9aed35f91b6bd9e3af50fad03ab86f23b /src/theory/theory_engine.cpp | |
parent | 6369830eec077ef112e6cc806cd910c7209eb2db (diff) |
quantifiers now uses master equality engine, preparation work to cleanup code
Diffstat (limited to 'src/theory/theory_engine.cpp')
-rw-r--r-- | src/theory/theory_engine.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/theory/theory_engine.cpp b/src/theory/theory_engine.cpp index 1742a32a5..ce3ccebf3 100644 --- a/src/theory/theory_engine.cpp +++ b/src/theory/theory_engine.cpp @@ -44,6 +44,8 @@ #include "theory/uf/equality_engine.h" +#include "theory/rewriterules/efficient_e_matching.h" + using namespace std; using namespace CVC4; @@ -52,7 +54,7 @@ using namespace CVC4::theory; void TheoryEngine::finishInit() { if (d_logicInfo.isQuantified()) { Assert(d_masterEqualityEngine == 0); - d_masterEqualityEngine = new eq::EqualityEngine(getSatContext(), "theory::master"); + d_masterEqualityEngine = new eq::EqualityEngine(d_masterEENotify,getSatContext(), "theory::master"); for(TheoryId theoryId = theory::THEORY_FIRST; theoryId != theory::THEORY_LAST; ++ theoryId) { if (d_theoryTable[theoryId]) { @@ -62,6 +64,23 @@ void TheoryEngine::finishInit() { } } +void TheoryEngine::eqNotifyNewClass(TNode t){ + d_quantEngine->addTermToDatabase( t ); +} + +void TheoryEngine::eqNotifyPreMerge(TNode t1, TNode t2){ + //TODO: add notification to efficient E-matching +} + +void TheoryEngine::eqNotifyPostMerge(TNode t1, TNode t2){ + +} + +void TheoryEngine::eqNotifyDisequal(TNode t1, TNode t2, TNode reason){ + +} + + TheoryEngine::TheoryEngine(context::Context* context, context::UserContext* userContext, RemoveITE& iteRemover, @@ -73,6 +92,7 @@ TheoryEngine::TheoryEngine(context::Context* context, d_logicInfo(logicInfo), d_sharedTerms(this, context), d_masterEqualityEngine(NULL), + d_masterEENotify(*this), d_quantEngine(NULL), d_curr_model(NULL), d_curr_model_builder(NULL), |