summaryrefslogtreecommitdiff
path: root/src/prop/prop_engine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/prop/prop_engine.cpp')
-rw-r--r--src/prop/prop_engine.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/prop/prop_engine.cpp b/src/prop/prop_engine.cpp
index 05704c0fa..546567b98 100644
--- a/src/prop/prop_engine.cpp
+++ b/src/prop/prop_engine.cpp
@@ -75,14 +75,12 @@ public:
};
PropEngine::PropEngine(TheoryEngine* te,
- DecisionEngine* de,
Context* satContext,
- Context* userContext,
+ UserContext* userContext,
std::ostream* replayLog,
ExprStream* replayStream)
: d_inCheckSat(false),
d_theoryEngine(te),
- d_decisionEngine(de),
d_context(satContext),
d_theoryProxy(NULL),
d_satSolver(NULL),
@@ -94,6 +92,9 @@ PropEngine::PropEngine(TheoryEngine* te,
Debug("prop") << "Constructing the PropEngine" << endl;
+ d_decisionEngine.reset(new DecisionEngine(satContext, userContext));
+ d_decisionEngine->init(); // enable appropriate strategies
+
d_satSolver = SatSolverFactory::createDPLLMinisat(smtStatisticsRegistry());
d_registrar = new theory::TheoryRegistrar(d_theoryEngine);
@@ -102,7 +103,7 @@ PropEngine::PropEngine(TheoryEngine* te,
d_theoryProxy = new TheoryProxy(this,
d_theoryEngine,
- d_decisionEngine,
+ d_decisionEngine.get(),
d_context,
d_cnfStream,
replayLog,
@@ -118,6 +119,7 @@ PropEngine::PropEngine(TheoryEngine* te,
PropEngine::~PropEngine() {
Debug("prop") << "Destructing the PropEngine" << endl;
+ d_decisionEngine->shutdown();
delete d_cnfStream;
delete d_registrar;
delete d_satSolver;
@@ -142,6 +144,12 @@ void PropEngine::assertLemma(TNode node, bool negated,
d_cnfStream->convertAndAssert(node, removable, negated, rule, from);
}
+void PropEngine::addAssertionsToDecisionEngine(
+ const preprocessing::AssertionPipeline& assertions)
+{
+ d_decisionEngine->addAssertions(assertions);
+}
+
void PropEngine::requirePhase(TNode n, bool phase) {
Debug("prop") << "requirePhase(" << n << ", " << phase << ")" << endl;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback