d_satSolver(nullptr),
d_cnfStream(nullptr),
d_pfCnfStream(nullptr),
+ d_theoryLemmaPg(d_env.getProofNodeManager(), d_env.getUserContext()),
d_ppm(nullptr),
d_interrupted(false),
d_assumptions(d_env.getUserContext())
bool negated = trn.getKind() == TrustNodeKind::CONFLICT;
// should have a proof generator if the theory engine is proof producing
Assert(!d_env.isTheoryProofProducing() || trn.getGenerator() != nullptr);
- assertInternal(trn.getNode(), negated, removable, false, trn.getGenerator());
+ // if we are producing proofs for the SAT solver but not for theory engine,
+ // then we need to prevent the lemma of being added as an assumption (since
+ // the generator will be null). We use the default proof generator for lemmas.
+ if (isProofEnabled() && !d_env.isTheoryProofProducing()
+ && !trn.getGenerator())
+ {
+ d_theoryLemmaPg.addStep(node, PfRule::THEORY_LEMMA, {}, {node});
+ trn = TrustNode::mkReplaceGenTrustNode(trn, &d_theoryLemmaPg);
+ }
+ assertInternal(node, negated, removable, false, trn.getGenerator());
}
void PropEngine::assertInternal(
regress0/datatypes/mutually-recursive.cvc.smt2
regress0/datatypes/pair-bool-bool.cvc.smt2
regress0/datatypes/pair-real-bool.smt2
- regress0/datatypes/par-updater-type-rule.smt2
+ regress0/datatypes/par-updater-type-rule.smt2
regress0/datatypes/parametric-alt-list.cvc.smt2
regress0/datatypes/proj-issue172.smt2
regress0/datatypes/proj-issue474-app-cons-value.smt2
regress0/proofs/proj-issue342-eager-checking-no-proof-checking.smt2
regress0/proofs/proj-issue430-coverings-double-negation.smt2
regress0/proofs/proj-issue462-sat-proof-option.smt2
+ regress0/proofs/proj-issue468-mkScope.smt2
regress0/proofs/proj-issue492-skolem-lemma-pf.smt2
regress0/proofs/qgu-fuzz-1-bool-sat.smt2
regress0/proofs/qgu-fuzz-2-bool-chainres-checking.smt2
regress0/sets/issue5400-card-minus-univ.smt2
regress0/sets/issue5400-2-card-minus-univ.smt2
regress0/sets/issue5402-1-card.smt2
- regress0/sets/issue5402-2-card-finite.smt2
+ regress0/sets/issue5402-2-card-finite.smt2
regress0/sets/jan24/deepmeas0.hs.fqout.cvc4.47.smt2
regress0/sets/jan24/deepmeas0.hs.fqout.small.smt2
regress0/sets/jan27/ListConcat.hs.fqout.177minimized.smt2
regress1/nl/issue5662-nl-tc-min.smt2
regress1/nl/issue7924-sqrt-partial.smt2
regress1/nl/issue7948-3-unsound-sin-region.smt2
- regress1/nl/issue8016-iand-rewrite.smt2
+ regress1/nl/issue8016-iand-rewrite.smt2
regress1/nl/issue8052-iand-rewrite.smt2
regress1/nl/issue8118-elim-sin.smt2
regress1/nl/issue8162-drop-pi-bound.smt2
regress1/quantifiers/issue5279-nqe.smt2
regress1/quantifiers/issue5288-vts-real-int.smt2
regress1/quantifiers/issue5365-nqe.smt2
- regress1/quantifiers/issue5373-1-qe-inc.smt2
- regress1/quantifiers/issue5373-2.smt2
+ regress1/quantifiers/issue5373-1-qe-inc.smt2
+ regress1/quantifiers/issue5373-2.smt2
regress1/quantifiers/issue5378-witness.smt2
regress1/quantifiers/issue5469-aext.smt2
regress1/quantifiers/issue5470-aext.smt2
regress1/strings/issue6777-seq-nth-eval-cm.smt2
regress1/strings/issue6913.smt2
regress1/strings/issue6973-dup-lemma-conc.smt2
- regress1/strings/issue7677-test-const-rv.smt2
+ regress1/strings/issue7677-test-const-rv.smt2
regress1/strings/issue7918-learned-rewrite.smt2
regress1/strings/issue8094-witness-model.smt2
regress1/strings/kaluza-fl.smt2
regress1/sygus/inv-missed-sol-true.sy
regress1/sygus/inv-unused.sy
regress1/sygus/interpol1.smt2
- regress1/sygus/interpol1-push-pop.smt2
+ regress1/sygus/interpol1-push-pop.smt2
regress1/sygus/interpol3.smt2
regress1/sygus/interpol3-next.smt2
regress1/sygus/interpol_arr1.smt2