Abstract
We present an algorithm and tool to convert derivations from the powerful recently proposed PR proof system into the widely used DRAT proof system. The PR proof system allows short proofs without new variables for some hard problems, while the DRAT proof system is supported by top-tier SAT solvers. Moreover, there exist efficient, formally verified checkers of DRAT proofs. Thus our tool can be used to validate PR proofs using these verified checkers. Our simulation algorithm uses only one new Boolean variable and the size increase is at most quadratic in the size of the propositional formula and the PR proof. The approach is evaluated on short PR proofs of hard problems, including the well-known pigeon-hole and Tseitin formulas. Applying our tool to PR proofs of pigeon-hole formulas results in short DRAT proofs, linear in size with respect to the size of the input formula, which have been certified by a formally verified proof checker.
Highlights
The most effective new techniques in recent years are based on inprocessing [21,25]: Interleaving preprocessing techniques and conflict-driven clause learning (CDCL) [26]
We showed how to convert propagation redundant (PR) proofs into DRAT proofs using only a single new variable with an at most quadratic blowup in proof size
The optimizations implemented in our conversion tool PR2DRAT made it possible to produce DRAT proofs for hard problems that are significantly smaller compared to existing DRAT proofs of those problems
Summary
Satisfiability (SAT) solvers are powerful tools for many applications in formal methods and artificial intelligence [3,9]. More recently a ground-breaking paper [8] presented at TACAS’17 showed how to efficiently certify huge propositional proofs of unsatisfiability by proof checkers, which are formally verified by theorem provers, such as ACL2 [7], Coq [7,8], and Isabelle/HOL [24]. These developments are clearly a breakthrough in SAT solving. Short proofs for hard formulas in the RAT proof system likely require many new variables, making it difficult to find them automatically. Only a single new Boolean variable is required to convert PR proofs into DRAT proofs At this point there exists only an unverified checker to validate PR proofs, written in C.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have