summaryrefslogtreecommitdiff
path: root/src/theory
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory')
-rw-r--r--src/theory/trust_node.cpp6
-rw-r--r--src/theory/uf/proof_equality_engine.cpp10
2 files changed, 10 insertions, 6 deletions
diff --git a/src/theory/trust_node.cpp b/src/theory/trust_node.cpp
index 35fc5e348..d447cbf60 100644
--- a/src/theory/trust_node.cpp
+++ b/src/theory/trust_node.cpp
@@ -14,6 +14,8 @@
#include "theory/trust_node.h"
+#include "theory/proof_engine_output_channel.h"
+
namespace CVC4 {
namespace theory {
@@ -36,14 +38,14 @@ std::ostream& operator<<(std::ostream& out, TrustNodeKind tnk)
TrustNode TrustNode::mkTrustConflict(Node conf, ProofGenerator* g)
{
// if a generator is provided, should confirm that it can prove it
- Assert(g == nullptr || g->hasProofFor(conf));
+ Assert(g == nullptr || g->hasProofFor(ProofEngineOutputChannel::getConflictKeyValue(conf)));
return TrustNode(TrustNodeKind::CONFLICT, conf, g);
}
TrustNode TrustNode::mkTrustLemma(Node lem, ProofGenerator* g)
{
// if a generator is provided, should confirm that it can prove it
- Assert(g == nullptr || g->hasProofFor(lem));
+ Assert(g == nullptr || g->hasProofFor(ProofEngineOutputChannel::getLemmaKeyValue(lem)));
return TrustNode(TrustNodeKind::LEMMA, lem, g);
}
diff --git a/src/theory/uf/proof_equality_engine.cpp b/src/theory/uf/proof_equality_engine.cpp
index 5dd62daee..c98e51adb 100644
--- a/src/theory/uf/proof_equality_engine.cpp
+++ b/src/theory/uf/proof_equality_engine.cpp
@@ -371,11 +371,13 @@ TrustNode ProofEqEngine::ensureProofForFact(Node conc,
// ensured by the fact that the core mechanism for generating proofs
// from the equality engine is syncronized with its getExplanation
// method.
+ std::stringstream ss;
+ pfConc->printDebug(ss);
Trace("pfee-proof") << "Could not find free assumption for " << a
<< " in " << freeAssumps << std::endl;
- Assert(false) << "pfee::ensureProofForFact: explained assumption " << a
- << " does not match a free assumption from " << freeAssumps
- << " in the corresponding proof";
+ Notice() << "pfee::ensureProofForFact: explained assumption " << a
+ << " does not match a free assumption from " << freeAssumps << std::endl;
+ // Assert(false);
}
}
else
@@ -398,13 +400,13 @@ TrustNode ProofEqEngine::ensureProofForFact(Node conc,
}
Trace("pfee-proof") << "pfee::ensureProofForFact: formula is " << formula
<< std::endl;
+ Node concFormula = isConflict ? formula.negate() : formula;
// if proofs are enabled, scope the proof constructed above, and connect the
// formula with the proof
if (d_pfEnabled)
{
// Notice that we have an expected conclusion (formula) which we pass to
// mkNode, which can check it if it wants. This is negated for conflicts.
- Node concFormula = isConflict ? formula.negate() : formula;
std::shared_ptr<ProofNode> pf =
d_pnm->mkNode(PfRule::SCOPE, pfConc, scopeAssumps, concFormula);
if (Trace.isOn("pfee-proof") || Trace.isOn("pfee-proof-final"))
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback