On proof generation and proof checking #4881
Replies: 2 comments 4 replies
-
NB update: the drat format mentioned in this comment is now deprecated for SMT queries. The main development in Z3 regarding proofs is to support an SMT extension of DRUP (DRAT). I am using it to debug a new core. While the new core is not ready for prime time developing the proof logging format and checker is integral for the development. https://github.com/Z3Prover/z3/blob/master/src/sat/sat_drat.h It is currently producing theory lemmas for arithmetic, cardinality and PB constraints, bit-vectors, arrays, and EUF. There is a domestic checker invoked from the command line by using two files:
where log.drat is obtained
While I can't take bug reports yet for runs using sat.euf small examples may be able to give an idea of its usage. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Many applications require a verifier for SMT refutations. That is, the solver accompanies its unsat answers with a certificate that can be checked independently with much simpler and more trustworthy tools (i.e., a proof checker). This certificate is, in general, proof of the input formula’s unsatisfiability, expressed as a proof term in some suitable proof system (such as propositional resolution).
Related discussions about Z3
Some papers for reference
A successful story of proof generation in SAT
Marijn Heule used a parallel SAT solver to prove the Boolean Pythagorean Triples problem, which dumps a proof of 200 TB in size
Nature Volume 543: 17-18: Maths proof smashes size record [http://www.nature.com/news/two-hundred-terabyte-maths-proof-is-largest-ever-1.19990]
(Reddit offers a discussion on this article with 250+ comments https://www.reddit.com/r/science/comments/4lnpm8/twohundredterabyte_maths_proof_is_largest_ever/)
Beta Was this translation helpful? Give feedback.
All reactions