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/expr/proof_rule.h | |
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/expr/proof_rule.h')
-rw-r--r-- | src/expr/proof_rule.h | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/expr/proof_rule.h b/src/expr/proof_rule.h index a83e043bf..59c406d28 100644 --- a/src/expr/proof_rule.h +++ b/src/expr/proof_rule.h @@ -174,29 +174,35 @@ enum class PfRule : uint32_t THEORY_REWRITE, //================================================= Processing rules - // ======== Preprocess (trusted) + // ======== Remove Term Formulas Axiom + // Children: none + // Arguments: (t) + // --------------------------------------------------------------- + // Conclusion: RemoveTermFormulas::getAxiomFor(t). + REMOVE_TERM_FORMULA_AXIOM, + + //================================================= Trusted rules + // The rules in this section have the signature of a "trusted rule": + // // Children: none // Arguments: (F) // --------------------------------------------------------------- // Conclusion: F + // // where F is an equality of the form t = t' where t was replaced by t' // based on some preprocessing pass, or otherwise F was added as a new // assertion by some preprocessing pass. PREPROCESS, - // ======== Witness axiom (trusted) - // Children: none - // Arguments: (F) - // --------------------------------------------------------------- - // Conclusion: F + // where F was added as a new assertion by some preprocessing pass. + PREPROCESS_LEMMA, + // where F is an equality of the form t = Theory::ppRewrite(t) for some + // theory. Notice this is a "trusted" rule. + THEORY_PREPROCESS, + // where F was added as a new assertion by theory preprocessing. + THEORY_PREPROCESS_LEMMA, // where F is an existential (exists ((x T)) (P x)) used for introducing // a witness term (witness ((x T)) (P x)). WITNESS_AXIOM, - // ======== Remove Term Formulas Axiom - // Children: none - // Arguments: (t) - // --------------------------------------------------------------- - // Conclusion: RemoveTermFormulas::getAxiomFor(t). - REMOVE_TERM_FORMULA_AXIOM, //================================================= Boolean rules // ======== Split |