summaryrefslogtreecommitdiff
path: root/src/theory/uf/proof_equality_engine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory/uf/proof_equality_engine.cpp')
-rw-r--r--src/theory/uf/proof_equality_engine.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/theory/uf/proof_equality_engine.cpp b/src/theory/uf/proof_equality_engine.cpp
index b4522d9df..ca8b3f740 100644
--- a/src/theory/uf/proof_equality_engine.cpp
+++ b/src/theory/uf/proof_equality_engine.cpp
@@ -36,6 +36,7 @@ ProofEqEngine::ProofEqEngine(context::Context* c,
: EagerProofGenerator(pnm, u, "pfee::" + ee.identify()),
d_ee(ee),
d_factPg(c, pnm),
+ d_assumpPg(pnm),
d_pnm(pnm),
d_proof(pnm, nullptr, c, "pfee::LazyCDProof::" + ee.identify()),
d_keep(c)
@@ -225,7 +226,7 @@ TrustNode ProofEqEngine::assertLemma(Node conc,
LazyCDProof* curr;
TrustNodeKind tnk;
// same policy as above: for conflicts, use existing lazy proof
- if (conc == d_false)
+ if (conc == d_false && noExplain.empty())
{
curr = &d_proof;
tnk = TrustNodeKind::CONFLICT;
@@ -264,7 +265,7 @@ TrustNode ProofEqEngine::assertLemma(Node conc,
LazyCDProof* curr;
TrustNodeKind tnk;
// same policy as above: for conflicts, use existing lazy proof
- if (conc == d_false)
+ if (conc == d_false && noExplain.empty())
{
curr = &d_proof;
tnk = TrustNodeKind::CONFLICT;
@@ -314,6 +315,8 @@ void ProofEqEngine::explainVecWithProof(TrustNodeKind& tnk,
assumps.push_back(e);
// it is not a conflict, since it may involve new literals
tnk = TrustNodeKind::LEMMA;
+ // ensure this is an assumption
+ curr->addLazyStep(e, &d_assumpPg);
}
}
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback