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.cpp22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/prop/prop_engine.cpp b/src/prop/prop_engine.cpp
index 71b27d8ec..3f53433ae 100644
--- a/src/prop/prop_engine.cpp
+++ b/src/prop/prop_engine.cpp
@@ -174,17 +174,15 @@ theory::TrustNode PropEngine::removeItes(
void PropEngine::notifyPreprocessedAssertions(
const std::vector<Node>& assertions)
{
- // notify the theory engine of preprocessed assertions
- d_theoryEngine->notifyPreprocessedAssertions(assertions);
- for (const Node& assertion : assertions)
- {
- d_decisionEngine->addAssertion(assertion);
- }
+ // notify the theory proxy of preprocessed assertions
+ d_theoryProxy->notifyPreprocessedAssertions(assertions);
}
void PropEngine::assertFormula(TNode node) {
Assert(!d_inCheckSat) << "Sat solver in solve()!";
Debug("prop") << "assertFormula(" << node << ")" << std::endl;
+ // NOTE: we do not notify the theory proxy here, since we've already
+ // notified the theory proxy during notifyPreprocessedAssertions
assertInternal(node, false, false, true);
}
@@ -192,7 +190,7 @@ void PropEngine::assertSkolemDefinition(TNode node, TNode skolem)
{
Assert(!d_inCheckSat) << "Sat solver in solve()!";
Debug("prop") << "assertFormula(" << node << ")" << std::endl;
- d_decisionEngine->addSkolemDefinition(node, skolem);
+ d_theoryProxy->notifyAssertion(node, skolem);
assertInternal(node, false, false, true);
}
@@ -284,13 +282,13 @@ void PropEngine::assertLemmasInternal(
if (!trn.isNull())
{
// notify the theory proxy of the lemma
- d_decisionEngine->addAssertion(trn.getProven());
+ d_theoryProxy->notifyAssertion(trn.getProven());
}
Assert(ppSkolems.size() == ppLemmas.size());
for (size_t i = 0, lsize = ppLemmas.size(); i < lsize; ++i)
{
Node lem = ppLemmas[i].getProven();
- d_decisionEngine->addSkolemDefinition(lem, ppSkolems[i]);
+ d_theoryProxy->notifyAssertion(ppLemmas[i].getProven(), ppSkolems[i]);
}
}
}
@@ -465,14 +463,14 @@ Node PropEngine::getPreprocessedTerm(TNode n,
// get the preprocessed form of the term
Node pn = getPreprocessedTerm(n);
// initialize the set of skolems and assertions to process
- std::vector<theory::TrustNode> toProcessAsserts;
+ std::vector<Node> toProcessAsserts;
std::vector<Node> toProcess;
d_theoryProxy->getSkolems(pn, toProcessAsserts, toProcess);
size_t index = 0;
// until fixed point is reached
while (index < toProcess.size())
{
- theory::TrustNode ka = toProcessAsserts[index];
+ Node ka = toProcessAsserts[index];
Node k = toProcess[index];
index++;
if (std::find(sks.begin(), sks.end(), k) != sks.end())
@@ -481,7 +479,7 @@ Node PropEngine::getPreprocessedTerm(TNode n,
continue;
}
// must preprocess lemmas as well
- Node kap = getPreprocessedTerm(ka.getProven());
+ Node kap = getPreprocessedTerm(ka);
skAsserts.push_back(kap);
sks.push_back(k);
// get the skolems in the preprocessed form of the lemma ka
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback