summaryrefslogtreecommitdiff
path: root/src/expr/proof_rule.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-08-18 16:42:22 -0500
committerGitHub <noreply@github.com>2020-08-18 16:42:22 -0500
commit77fdb2327ae969a7d97b6eb67ad3526d78867b3a (patch)
tree8a16e05c53feca4085254566e7a15e1b14310704 /src/expr/proof_rule.h
parentaa8da1ff4e7f119408dbf14074b9a5efcb06618b (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.h30
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
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback