Implement lazy proof checking modes (#7106)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Thu, 2 Sep 2021 17:02:46 +0000 (12:02 -0500)
committerGitHub <noreply@github.com>
Thu, 2 Sep 2021 17:02:46 +0000 (17:02 +0000)
commit66b67160df9ce4974039a1c137e84c859fad5237
tree4c435a6cf616eb61a82ac6831d222fc8bfb01bd6
parent2d09af0b8789fd5e2a06032f93f85d0c9265a627
Implement lazy proof checking modes (#7106)

This implements several variants of lazy proof checking in the core proof checker.

Note this extends the ProofNode class with an additional Boolean d_provenChecked indicating whether the d_proven field was checked by the underlying proof checker.

This PR updates the default proof checking mode to lazy. The previous default can now be enabled by --proof-check=eager-simple.
17 files changed:
src/options/proof_options.toml
src/proof/lazy_proof_chain.cpp
src/proof/proof_checker.cpp
src/proof/proof_checker.h
src/proof/proof_ensure_closed.cpp
src/proof/proof_node.cpp
src/proof/proof_node.h
src/proof/proof_node_manager.cpp
src/proof/proof_node_manager.h
src/prop/prop_engine.cpp
src/prop/sat_proof_manager.cpp
src/smt/preprocess_proof_generator.cpp
src/smt/proof_final_callback.cpp
src/smt/proof_manager.cpp
src/smt/set_defaults.cpp
src/smt/smt_engine.cpp
test/regress/regress0/arith/non-normal.smt2