diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-10-08 17:10:36 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-08 17:10:36 -0500 |
commit | 2edc04bdfdac32ce899c98c4a8887c037b1f6a3f (patch) | |
tree | 26eb2e286d6738a7e18a61bb1edf3a9316dfa0e9 /src/theory/builtin | |
parent | 35d080bfb56ff96fd41b31ce7025c019193f6abc (diff) |
(proof-new) Fixes and improvements for smt proof postprocessor (#5197)
This includes several subtle issues encountered in the past month based on our regressions.
It also improves the expansion forms of MACRO_ rules to use EQ_RESOLVE instead of a TRUE_INTRO/TRUE_ELIM scheme. This is both more compact and avoids cyclic proofs for some corner cases of proofs with Boolean constant equalites.
Diffstat (limited to 'src/theory/builtin')
-rw-r--r-- | src/theory/builtin/proof_checker.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/theory/builtin/proof_checker.cpp b/src/theory/builtin/proof_checker.cpp index 2fb8f611c..1a30f4449 100644 --- a/src/theory/builtin/proof_checker.cpp +++ b/src/theory/builtin/proof_checker.cpp @@ -74,6 +74,8 @@ void BuiltinProofRuleChecker::registerTo(ProofChecker* pc) pc->registerTrustedChecker(PfRule::THEORY_PREPROCESS, this, 2); pc->registerTrustedChecker(PfRule::THEORY_PREPROCESS_LEMMA, this, 2); pc->registerTrustedChecker(PfRule::WITNESS_AXIOM, this, 2); + pc->registerTrustedChecker(PfRule::TRUST_REWRITE, this, 1); + pc->registerTrustedChecker(PfRule::TRUST_SUBS, this, 1); } Node BuiltinProofRuleChecker::applySubstitutionRewrite( @@ -352,7 +354,8 @@ Node BuiltinProofRuleChecker::checkInternal(PfRule id, } else if (id == PfRule::PREPROCESS || id == PfRule::THEORY_PREPROCESS || id == PfRule::WITNESS_AXIOM || id == PfRule::THEORY_LEMMA - || id == PfRule::PREPROCESS_LEMMA || id == PfRule::THEORY_REWRITE) + || id == PfRule::PREPROCESS_LEMMA || id == PfRule::THEORY_REWRITE + || id == PfRule::TRUST_REWRITE || id == PfRule::TRUST_SUBS) { // "trusted" rules Assert(children.empty()); |