d_currPropagationProccessed = normalizeAndRegister(clauseExp);
// consume steps if clausification being recorded. If we are not logging it,
// we need to add the clause as a closed step to the proof so that the SAT
- // proof does not have non-input formulas as assumptions.
+ // proof does not have non-input formulas as assumptions. That clause is the
+ // result of normalizeAndRegister, stored in d_currPropagationProccessed
if (proofLogging)
{
const std::vector<std::pair<Node, ProofStep>>& steps = d_psb.getSteps();
}
else
{
- d_proof.addStep(clauseExp, PfRule::THEORY_LEMMA, {}, {clauseExp});
+ d_proof.addStep(d_currPropagationProccessed,
+ PfRule::THEORY_LEMMA,
+ {},
+ {d_currPropagationProccessed});
}
}
d_satSolver(nullptr),
d_cnfStream(nullptr),
d_pfCnfStream(nullptr),
- d_theoryLemmaPg(d_env.getProofNodeManager(), d_env.getUserContext()),
+ d_theoryLemmaPg(d_env.getProofNodeManager(),
+ d_env.getUserContext(),
+ "PropEngine::ThLemmaPg"),
d_ppm(nullptr),
d_interrupted(false),
d_assumptions(d_env.getUserContext())
if (isProofEnabled() && !d_env.isTheoryProofProducing()
&& !trn.getGenerator())
{
- d_theoryLemmaPg.addStep(node, PfRule::THEORY_LEMMA, {}, {node});
+ Node actualNode = negated ? node.notNode() : node;
+ d_theoryLemmaPg.addStep(actualNode, PfRule::THEORY_LEMMA, {}, {actualNode});
trn = TrustNode::mkReplaceGenTrustNode(trn, &d_theoryLemmaPg);
}
assertInternal(node, negated, removable, false, trn.getGenerator());
std::vector<Node> PropEngine::getPropDecisions() const
{
- std::vector<Node> decisions;
+ std::vector<Node> decisions;
std::vector<SatLiteral> miniDecisions = d_satSolver->getDecisions();
for (SatLiteral d : miniDecisions)
{