DRAT-trim: Efficient Checking and � Trimming Using Expressive Clausal Proofs Nathan Wetzler � Marijn J.H. Heule � Warren A. Hunt, Jr. � � The University of Texas at Austin � � Theory and Applications of Satisfiability Solving (SAT) � Vienna, Austria � July 14, 2014
Outline DRAT-trim is an unsatisfiability proof checking utility that can validate all presently-known SAT solving and preprocessing techniques and optionally produce trimmed formulas, optimized proofs, and resolution and dependency graphs. DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 2 / 13
Outline DRAT-trim is an unsatisfiability proof checking utility that can validate all presently-known SAT solving and preprocessing techniques and optionally produce trimmed formulas, optimized proofs, and resolution and dependency graphs. • Motivation � • Approach � • Proof Formats � • Input, Output, and Applications � • Evaluation DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 2 / 13
Motivation Satisfiability solvers are used in amazing ways... � - Hardware verification: Centaur x86 verification � - Combinatorial problems: � ‣ van der Waerden numbers [Dransfield, Marek, and Truszczynski, 2004; Kouril and Paul, 2008] � ‣ Gardens of Eden in Conway’s Game of Life [Hartman, Heule, Kwekkeboom, and Noels, 2013] � ‣ Erd ő s Discrepancy Problem [Konev and Lisitsa, 2014] DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 3 / 13
Motivation Satisfiability solvers are used in amazing ways... � - Hardware verification: Centaur x86 verification � - Combinatorial problems: � ‣ van der Waerden numbers [Dransfield, Marek, and Truszczynski, 2004; Kouril and Paul, 2008] � ‣ Gardens of Eden in Conway’s Game of Life [Hartman, Heule, Kwekkeboom, and Noels, 2013] � ‣ Erd ő s Discrepancy Problem [Konev and Lisitsa, 2014] ..., but satisfiability solvers have errors. � - Documented bugs in SAT, SMT, and QBF solvers [Brummayer and Biere, 2009; Brummayer et al., 2010] � - Competition winners have contradictory results (HWMCC winners from 2011 and 2012) � - Implementation errors often imply conceptual errors DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 3 / 13
Approach Verify SAT solvers � - Requires verification of all crucial search techniques � - Delicate balance between efficiency and ease of verification � - Verification is specific to one solver � - New developments in solving require additional proof effort DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 4 / 13
Approach Verify SAT solvers � - Requires verification of all crucial search techniques � - Delicate balance between efficiency and ease of verification � - Verification is specific to one solver � - New developments in solving require additional proof effort DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 4 / 13
Approach Verify SAT solvers � - Requires verification of all crucial search techniques � - Delicate balance between efficiency and ease of verification � - Verification is specific to one solver � - New developments in solving require additional proof effort Validate SAT solver output � - Emit a “proof” of unsatisfiability from SAT solver � - A proof checker can validate results from many state-of-the-art solvers � - Proof checker uses limited number of techniques and can be mechanically verified DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 4 / 13
Proof Formats Resolution Proofs � [Zhang and Malik, 2003] � [Van Gelder, 2008] � [Biere, 2008] Easy to Emit Compact Checked Efficiently Expressive DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 5 / 13
Proof Formats Resolution Proofs � [Zhang and Malik, 2003] � [Van Gelder, 2008] � [Biere, 2008] Easy to Emit Clausal (RUP) Proofs � [Goldberg and Novikov, 2003] � [Van Gelder, 2008] Compact Checked Efficiently Expressive DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 5 / 13
Proof Formats Resolution Proofs � [Zhang and Malik, 2003] � [Van Gelder, 2008] � [Biere, 2008] Easy to Emit Clausal (RUP) Proofs � [Goldberg and Novikov, 2003] � [Van Gelder, 2008] Compact RAT Proofs � [Heule, Hunt, Jr., and Wetzler, CADE 2013] Checked Efficiently Expressive DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 5 / 13
Proof Formats Resolution Proofs � [Zhang and Malik, 2003] � [Van Gelder, 2008] � [Biere, 2008] Easy to Emit Clausal (RUP) Proofs � [Goldberg and Novikov, 2003] � [Van Gelder, 2008] Compact RAT Proofs � [Heule, Hunt, Jr., and Wetzler, CADE 2013] Checked Efficiently DRUP (DRUP-Trim) � [Heule, Hunt, Jr., and Wetzler, FMCAD 2013] Expressive DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 5 / 13
Proof Formats Resolution Proofs � [Zhang and Malik, 2003] � [Van Gelder, 2008] � [Biere, 2008] Easy to Emit Clausal (RUP) Proofs � [Goldberg and Novikov, 2003] � [Van Gelder, 2008] Compact RAT Proofs � [Heule, Hunt, Jr., and Wetzler, CADE 2013] Checked Efficiently DRUP (DRUP-Trim) � [Heule, Hunt, Jr., and Wetzler, FMCAD 2013] Expressive DRAT (DRAT-Trim) � [Wetzler, Heule, and Hunt, Jr., SAT 2014] DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 5 / 13
Overview Input Output CNF Formula Console Output p cnf 4 10 c 8 of 10 clauses in core 1 2 -3 0 c 3 of 3 lemmas in core using 15 resolution steps -1 -2 3 0 c 1 RAT lemmas in core; 0 redundant literals in core lemmas -1 -2 -3 0 s VERIFIED 2 3 -4 0 -2 -3 4 0 DRAT-trim -1 -3 -4 0 Trimmed Formula Optimized Proof TraceCheck + 1 3 4 0 -1 0 -1 2 4 0 1 1 2 -3 0 p cnf 4 8 d -1 -2 3 0 1 -2 -4 0 2 -1 -2 3 0 1 2 -3 0 d -1 -3 -4 0 -1 2 -4 0 4 2 3 -4 0 -1 -2 3 0 d -1 2 4 0 5 -2 -3 4 0 2 3 -4 0 2 0 6 -1 -3 -4 0 -2 -3 4 0 DRAT Proof d 1 2 -3 0 7 1 3 4 0 -1 -3 -4 0 d 2 3 -4 0 8 -1 2 4 0 1 3 4 0 -1 0 0 9 1 -2 -4 0 -1 2 4 0 d -1 2 4 0 11 -1 0 2 6 8 0 1 -2 -4 0 2 0 12 2 0 1 4 7 11 0 0 13 0 5 7 9 11 12 0 DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 6 / 13
Input Input Output CNF Formula p cnf 4 10 1 2 -3 0 -1 -2 3 0 -1 -2 -3 0 2 3 -4 0 -2 -3 4 0 DRAT-trim -1 -3 -4 0 1 3 4 0 -1 2 4 0 1 -2 -4 0 -1 2 -4 0 DRAT Proof -1 0 d -1 2 4 0 2 0 0 DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 7 / 13
Input Input Output CNF Formula p cnf 4 10 1 2 -3 0 -1 -2 3 0 -1 -2 -3 0 2 3 -4 0 -2 -3 4 0 DRAT-trim -1 -3 -4 0 1 3 4 0 -1 2 4 0 1 -2 -4 0 -1 2 -4 0 DRAT Proof -1 0 d -1 2 4 0 2 0 0 DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 7 / 13
Input Input Output CNF Formula p cnf 4 10 1 2 -3 0 • DIMACS format -1 -2 3 0 -1 -2 -3 0 2 3 -4 0 -2 -3 4 0 DRAT-trim -1 -3 -4 0 1 3 4 0 -1 2 4 0 1 -2 -4 0 -1 2 -4 0 DRAT Proof -1 0 d -1 2 4 0 2 0 0 DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 7 / 13
Input Input Output CNF Formula p cnf 4 10 1 2 -3 0 • DIMACS format -1 -2 3 0 -1 -2 -3 0 2 3 -4 0 -2 -3 4 0 DRAT-trim -1 -3 -4 0 1 3 4 0 -1 2 4 0 1 -2 -4 0 -1 2 -4 0 • DRAT format � • Each line is either: � DRAT Proof -1 0 - Lemma (clause) with d -1 2 4 0 2 0 RUP or RAT property � 0 - Deletion instruction with “ d ” prefix DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 7 / 13
Output and Applications Input Output DRAT-trim DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 8 / 13
Output and Applications Input Output DRAT-trim DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 8 / 13
Output and Applications Input Output Console Output c 8 of 10 clauses in core c 3 of 3 lemmas in core using 15 resolution steps c 1 RAT lemmas in core; 0 redundant literals in core lemmas s VERIFIED DRAT-trim • Basic output about success/failure � • Provide assurance to user � • Diagnose bugs in solving � • Verify competition results DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 8 / 13
Output and Applications Input Output DRAT-trim • Subset of original formula � Trimmed Formula p cnf 4 8 • DIMACS format � 1 2 -3 0 -1 -2 3 0 • Minimal unsatisfiable 2 3 -4 0 -2 -3 4 0 subset (MUS) -1 -3 -4 0 preprocessing � 1 3 4 0 -1 2 4 0 • Craig interpolants 1 -2 -4 0 DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 8 / 13
Output and Applications Input Output DRAT-trim • Subset of original Optimized Proof -1 0 proof with extra d -1 -2 3 0 deletion information � d -1 -3 -4 0 d -1 2 4 0 • DRAT format � 2 0 d 1 2 -3 0 d 2 3 -4 0 • Proof replay � 0 • Mechanically-verified proof checking DRAT-trim: Efficient Checking and Trimming Using Expressive Clausal Proofs Nathan Wetzler 8 / 13
Recommend
More recommend