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/smt/proof_post_processor.h | |
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/smt/proof_post_processor.h')
-rw-r--r-- | src/smt/proof_post_processor.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/smt/proof_post_processor.h b/src/smt/proof_post_processor.h index b65519c6d..d7186ea74 100644 --- a/src/smt/proof_post_processor.h +++ b/src/smt/proof_post_processor.h @@ -198,14 +198,23 @@ class ProofPostproccess void process(std::shared_ptr<ProofNode> pf); /** set eliminate rule */ void setEliminateRule(PfRule rule); - private: + /** The proof node manager */ + ProofNodeManager* d_pnm; /** The post process callback */ ProofPostprocessCallback d_cb; + /** + * The updater, which is responsible for expanding macros in the final proof + * and connecting preprocessed assumptions to input assumptions. + */ + ProofNodeUpdater d_updater; /** The post process callback for finalization */ ProofPostprocessFinalCallback d_finalCb; - /** The proof node manager */ - ProofNodeManager* d_pnm; + /** + * The finalizer, which is responsible for taking stats and checking for + * (lazy) pedantic failures. + */ + ProofNodeUpdater d_finalizer; }; } // namespace smt |