diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-08-18 16:42:22 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-18 16:42:22 -0500 |
commit | 77fdb2327ae969a7d97b6eb67ad3526d78867b3a (patch) | |
tree | 8a16e05c53feca4085254566e7a15e1b14310704 /src/theory/builtin | |
parent | aa8da1ff4e7f119408dbf14074b9a5efcb06618b (diff) |
(proof-new) Theory preprocessor proof producing (#4807)
This makes the theory preprocessor proof producing in the new infrastructure, which involves updating its interfaces to TrustNode in a few places.
Diffstat (limited to 'src/theory/builtin')
-rw-r--r-- | src/theory/builtin/proof_checker.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/theory/builtin/proof_checker.cpp b/src/theory/builtin/proof_checker.cpp index 05c17dedf..7521d116e 100644 --- a/src/theory/builtin/proof_checker.cpp +++ b/src/theory/builtin/proof_checker.cpp @@ -61,9 +61,13 @@ void BuiltinProofRuleChecker::registerTo(ProofChecker* pc) pc->registerChecker(PfRule::MACRO_SR_PRED_ELIM, this); pc->registerChecker(PfRule::MACRO_SR_PRED_TRANSFORM, this); pc->registerChecker(PfRule::THEORY_REWRITE, this); - pc->registerChecker(PfRule::PREPROCESS, this); - pc->registerChecker(PfRule::WITNESS_AXIOM, this); pc->registerChecker(PfRule::REMOVE_TERM_FORMULA_AXIOM, this); + // trusted rules + pc->registerTrustedChecker(PfRule::PREPROCESS, this, 2); + pc->registerTrustedChecker(PfRule::PREPROCESS_LEMMA, this, 2); + pc->registerTrustedChecker(PfRule::THEORY_PREPROCESS, this, 2); + pc->registerTrustedChecker(PfRule::THEORY_PREPROCESS_LEMMA, this, 2); + pc->registerTrustedChecker(PfRule::WITNESS_AXIOM, this, 2); } Node BuiltinProofRuleChecker::applyTheoryRewrite(Node n, bool preRewrite) @@ -330,7 +334,10 @@ Node BuiltinProofRuleChecker::checkInternal(PfRule id, Assert(args.size() == 1); return RemoveTermFormulas::getAxiomFor(args[0]); } - else if (id == PfRule::PREPROCESS || id == PfRule::WITNESS_AXIOM) + else if (id == PfRule::PREPROCESS || id == PfRule::PREPROCESS_LEMMA + || id == PfRule::THEORY_PREPROCESS + || id == PfRule::THEORY_PREPROCESS_LEMMA + || id == PfRule::WITNESS_AXIOM) { Assert(children.empty()); Assert(args.size() == 1); |