proofs for satisfiability problems
play

Proofs for Satisfiability Problems Marijn J.H. Heule Joint work - PowerPoint PPT Presentation

Proofs for Satisfiability Problems Marijn J.H. Heule Joint work with Armin Biere X . X , July 18, 2014 1/32 Outline Introduction Proof Systems Proof Search Proof Formats Proof Production Proof Consumption Applications Conclusions


  1. Proofs for Satisfiability Problems Marijn J.H. Heule Joint work with Armin Biere ∀ X . X π , July 18, 2014 1/32

  2. Outline Introduction Proof Systems Proof Search Proof Formats Proof Production Proof Consumption Applications Conclusions 2/32

  3. Introduction 3/32

  4. Introduction: “Small Example” ( x 5 ∨ x 8 ∨ ¯ x 2 ) ∧ ( x 2 ∨ ¯ x 1 ∨ ¯ x 3 ) ∧ (¯ x 8 ∨ ¯ x 3 ∨ ¯ x 7 ) ∧ (¯ x 5 ∨ x 3 ∨ x 8 ) ∧ (¯ x 6 ∨ ¯ x 1 ∨ ¯ x 5 ) ∧ ( x 8 ∨ ¯ x 9 ∨ x 3 ) ∧ ( x 2 ∨ x 1 ∨ x 3 ) ∧ (¯ x 1 ∨ x 8 ∨ x 4 ) ∧ (¯ x 9 ∨ ¯ x 6 ∨ x 8 ) ∧ ( x 8 ∨ x 3 ∨ ¯ x 9 ) ∧ ( x 9 ∨ ¯ x 3 ∨ x 8 ) ∧ ( x 6 ∨ ¯ x 9 ∨ x 5 ) ∧ ( x 2 ∨ ¯ x 3 ∨ ¯ x 8 ) ∧ ( x 8 ∨ ¯ x 6 ∨ ¯ x 3 ) ∧ ( x 8 ∨ ¯ x 3 ∨ ¯ x 1 ) ∧ (¯ x 8 ∨ x 6 ∨ ¯ x 2 ) ∧ ( x 7 ∨ x 9 ∨ ¯ x 2 ) ∧ ( x 8 ∨ ¯ x 9 ∨ x 2 ) ∧ (¯ x 1 ∨ ¯ x 9 ∨ x 4 ) ∧ ( x 8 ∨ x 1 ∨ ¯ x 2 ) ∧ ( x 3 ∨ ¯ x 4 ∨ ¯ x 6 ) ∧ (¯ x 1 ∨ ¯ x 7 ∨ x 5 ) ∧ (¯ x 7 ∨ x 1 ∨ x 6 ) ∧ (¯ x 5 ∨ x 4 ∨ ¯ x 6 ) ∧ (¯ x 4 ∨ x 9 ∨ ¯ x 8 ) ∧ ( x 2 ∨ x 9 ∨ x 1 ) ∧ ( x 5 ∨ ¯ x 7 ∨ x 1 ) ∧ (¯ x 7 ∨ ¯ x 9 ∨ ¯ x 6 ) ∧ ( x 2 ∨ x 5 ∨ x 4 ) ∧ ( x 8 ∨ ¯ x 4 ∨ x 5 ) ∧ ( x 5 ∨ x 9 ∨ x 3 ) ∧ (¯ x 5 ∨ ¯ x 7 ∨ x 9 ) ∧ ( x 2 ∨ ¯ x 8 ∨ x 1 ) ∧ (¯ x 7 ∨ x 1 ∨ x 5 ) ∧ ( x 1 ∨ x 4 ∨ x 3 ) ∧ ( x 1 ∨ ¯ x 9 ∨ ¯ x 4 ) ∧ ( x 3 ∨ x 5 ∨ x 6 ) ∧ (¯ x 6 ∨ x 3 ∨ ¯ x 9 ) ∧ (¯ x 7 ∨ x 5 ∨ x 9 ) ∧ ( x 7 ∨ ¯ x 5 ∨ ¯ x 2 ) ∧ ( x 4 ∨ x 7 ∨ x 3 ) ∧ ( x 4 ∨ ¯ x 9 ∨ ¯ x 7 ) ∧ ( x 5 ∨ ¯ x 1 ∨ x 7 ) ∧ ( x 5 ∨ ¯ x 1 ∨ x 7 ) ∧ ( x 6 ∨ x 7 ∨ ¯ x 3 ) ∧ (¯ x 8 ∨ ¯ x 6 ∨ ¯ x 7 ) ∧ ( x 6 ∨ x 2 ∨ x 3 ) ∧ (¯ x 8 ∨ x 2 ∨ x 5 ) ◮ Does there exist an assignment satisfying all clauses? 4/32

  5. Introduction: “Small Example” ( x 5 ∨ x 8 ∨ ¯ x 2 ) ∧ ( x 2 ∨ ¯ x 1 ∨ ¯ x 3 ) ∧ (¯ x 8 ∨ ¯ x 3 ∨ ¯ x 7 ) ∧ (¯ x 5 ∨ x 3 ∨ x 8 ) ∧ (¯ x 6 ∨ ¯ x 1 ∨ ¯ x 5 ) ∧ ( x 8 ∨ ¯ x 9 ∨ x 3 ) ∧ ( x 2 ∨ x 1 ∨ x 3 ) ∧ (¯ x 1 ∨ x 8 ∨ x 4 ) ∧ (¯ x 9 ∨ ¯ x 6 ∨ x 8 ) ∧ ( x 8 ∨ x 3 ∨ ¯ x 9 ) ∧ ( x 9 ∨ ¯ x 3 ∨ x 8 ) ∧ ( x 6 ∨ ¯ x 9 ∨ x 5 ) ∧ ( x 2 ∨ ¯ x 3 ∨ ¯ x 8 ) ∧ ( x 8 ∨ ¯ x 6 ∨ ¯ x 3 ) ∧ ( x 8 ∨ ¯ x 3 ∨ ¯ x 1 ) ∧ (¯ x 8 ∨ x 6 ∨ ¯ x 2 ) ∧ ( x 7 ∨ x 9 ∨ ¯ x 2 ) ∧ ( x 8 ∨ ¯ x 9 ∨ x 2 ) ∧ (¯ x 1 ∨ ¯ x 9 ∨ x 4 ) ∧ ( x 8 ∨ x 1 ∨ ¯ x 2 ) ∧ ( x 3 ∨ ¯ x 4 ∨ ¯ x 6 ) ∧ (¯ x 1 ∨ ¯ x 7 ∨ x 5 ) ∧ (¯ x 7 ∨ x 1 ∨ x 6 ) ∧ (¯ x 5 ∨ x 4 ∨ ¯ x 6 ) ∧ (¯ x 4 ∨ x 9 ∨ ¯ x 8 ) ∧ ( x 2 ∨ x 9 ∨ x 1 ) ∧ ( x 5 ∨ ¯ x 7 ∨ x 1 ) ∧ (¯ x 7 ∨ ¯ x 9 ∨ ¯ x 6 ) ∧ ( x 2 ∨ x 5 ∨ x 4 ) ∧ ( x 8 ∨ ¯ x 4 ∨ x 5 ) ∧ ( x 5 ∨ x 9 ∨ x 3 ) ∧ (¯ x 5 ∨ ¯ x 7 ∨ x 9 ) ∧ ( x 2 ∨ ¯ x 8 ∨ x 1 ) ∧ (¯ x 7 ∨ x 1 ∨ x 5 ) ∧ ( x 1 ∨ x 4 ∨ x 3 ) ∧ ( x 1 ∨ ¯ x 9 ∨ ¯ x 4 ) ∧ ( x 3 ∨ x 5 ∨ x 6 ) ∧ (¯ x 6 ∨ x 3 ∨ ¯ x 9 ) ∧ (¯ x 7 ∨ x 5 ∨ x 9 ) ∧ ( x 7 ∨ ¯ x 5 ∨ ¯ x 2 ) ∧ ( x 4 ∨ x 7 ∨ x 3 ) ∧ ( x 4 ∨ ¯ x 9 ∨ ¯ x 7 ) ∧ ( x 5 ∨ ¯ x 1 ∨ x 7 ) ∧ ( x 5 ∨ ¯ x 1 ∨ x 7 ) ∧ ( x 6 ∨ x 7 ∨ ¯ x 3 ) ∧ (¯ x 8 ∨ ¯ x 6 ∨ ¯ x 7 ) ∧ ( x 6 ∨ x 2 ∨ x 3 ) ∧ (¯ x 8 ∨ x 2 ∨ x 5 ) ◮ How to make (compact) proofs for unsatisfiable problems? 5/32

  6. Proof Systems 6/32

  7. Proof Systems: Resolution Rule and Resolution Chains Resolution Rule ( x ∨ a 1 ∨ . . . ∨ a i ) (¯ x ∨ b 1 ∨ . . . ∨ b j ) ( a 1 ∨ . . . ∨ a i ∨ b 1 ∨ . . . ∨ b j ) ◮ Many SAT techniques can be simulated by resolution. 7/32

  8. Proof Systems: Resolution Rule and Resolution Chains Resolution Rule ( x ∨ a 1 ∨ . . . ∨ a i ) (¯ x ∨ b 1 ∨ . . . ∨ b j ) ( a 1 ∨ . . . ∨ a i ∨ b 1 ∨ . . . ∨ b j ) ◮ Many SAT techniques can be simulated by resolution. A resolution chain is a sequence of resolution steps. The resolution steps are performed from left to right. Example a ∨ ¯ ◮ ( c ) := (¯ b ∨ c ) ⋄ (¯ a ∨ b ) ⋄ ( a ∨ c ) a ∨ ¯ ◮ (¯ a ∨ c ) := (¯ a ∨ b ) ⋄ ( a ∨ c ) ⋄ (¯ b ∨ c ) ◮ The order of the clauses in the chain matter 7/32

  9. Proof Systems: Resolution Proofs versus Clausal Proofs Consider the formula F := (¯ a ∨ ¯ b ) ∧ ( a ∨ ¯ b ∨ c ) ∧ ( a ∨ c ) ∧ (¯ a ∨ b ) ∧ (¯ b ) ∧ ( b ∨ ¯ c ) ǫ c ¯ a ¯ A resolution graph of F is: b ¯ a ∨ ¯ a ∨ ¯ a ∨ c a ∨ b ¯ b ∨ ¯ b ∨ c ¯ c b b A resolution proof consists of all nodes and edges of the resolution graph ◮ Graphs from CDCL solvers have ∼ 400 incoming edges per node ◮ Resolution proof logging can heavily increase memory usage ( × 100 ) A clausal proof is a list of all nodes sorted by topological order ◮ Clausal proofs are easy to emit and relatively small ◮ Clausal proof checking requires to reconstruct the edges (costly) 8/32

  10. Proof Systems: Extended Resolution and Generalizations Extended Resolution Rule Given a Boolean formula F without the Boolean variable x , the clauses a ∨ ¯ ( x ∨ ¯ b ) ∧ (¯ x ∨ a ) ∧ (¯ x ∨ b ) are redundant with respect to F . ◮ All existing techniques can be simulated by extended resolution ◮ For several techniques it is not known how to do the simulation Blocked Clauses [Kullmann’99] A clause C is blocked on literal l ∈ C w.r.t. a formula F is all resolvents of C and D with ¯ l ∈ D are tautologies. Example a ∨ ¯ Consider the formula F = (¯ x ∨ a ) ∧ (¯ x ∨ b ) . Clause ( x ∨ ¯ b ) is blocked a ∨ ¯ a ∨ ¯ on x with respect to F , because ( x ∨ ¯ b ) ⋄ x (¯ x ∨ a ) = (¯ b ∨ a ) and a ∨ ¯ a ∨ ¯ ( x ∨ ¯ b ) ⋄ x (¯ x ∨ b ) = (¯ b ∨ b ) are both tautologies. Theorem: Addition of an arbitrary blocked clause preserves satisfiability. 9/32

  11. Proof Systems: Pigeon Hole Principe Proofs Classic problem: Can n pigeons be in n − 1 pigeon holes? n − 1 holes: . . . n pigeons: . . . Hard for resolution: proofs are exponential in size! ER proofs can be exponentially smaller [Cook’76] ◮ reduce a problem with n pigeons and n − 1 holes into a problem with n − 1 pigeons and n − 2 holes 10/32

  12. Proof Search 11/32

  13. Proof Search: Conflict-Driven Clause Learning (CDCL) The leading search paradigm is conflict-driven clause learning: ◮ During each step the current assignment is extended; ◮ If the assignment is falsified a conflict clause is computed; ◮ Each conflict clause can be expressed as a resolution chain; ◮ Decisions are based on variables in recent conflict clauses. CDCL solvers use lots of pre- or in-processing techniques: ◮ Most techniques can be expressed using resolution chains; ◮ Weakening techniques can be ignored for UNSAT proofs; ◮ Some techniques are even difficult to express using extended resolution and its generalizations: e.g. Gaussian elimination, cardinality resolution, and symmetry breaking. 12/32

  14. Proof Formats 13/32

  15. Proof Formats: The Input Format DIMACS E := (¯ a ∨ ¯ b ) ∧ ( a ∨ ¯ b ∨ c ) ∧ ( a ∨ c ) ∧ (¯ a ∨ b ) ∧ (¯ b ) ∧ ( b ∨ ¯ c ) The input format of SAT solvers is known as DIMACS ◮ header starts with p cnf followed by p cnf 3 6 the number of variables ( n ) and the -2 3 0 number of clauses ( m ) 1 3 0 ◮ the next m lines represent the clauses -1 2 0 ◮ positive literals are positive numbers -1 -2 0 1 -2 0 ◮ negative literals are negative numbers 2 -3 0 ◮ clauses are terminated with a 0 Most proof formats use a similar syntax. 14/32

  16. Proof Formats: TraceCheck Overview TraceCheck is the most popular resolution-style format. E := (¯ a ∨ ¯ b ) ∧ ( a ∨ ¯ b ∨ c ) ∧ ( a ∨ c ) ∧ (¯ a ∨ b ) ∧ (¯ b ) ∧ ( b ∨ ¯ c ) TraceCheck is readable and resolution chains make it relatively compact 1 -2 3 0 0 � trace � = {� clause �} 2 1 3 0 0 � clause � = � pos �� literals �� antecedents � 3 -1 2 0 0 � literals � = “ ∗ ” | {� lit �} “ 0 ” 4 -1 -2 0 0 � antecedents � = {� pos �} “ 0 ” 5 1 -2 0 0 6 2 -3 0 0 � lit � = � pos � | � neg � 7 -2 0 4 5 0 � pos � = “ 1 ” | “ 2 ” | · · · | � max − idx � 8 0 1 2 3 0 3 � neg � = “ − ” � pos � 9 6 7 8 0 0 15/32

  17. Proof Formats: TraceCheck Examples TraceCheck is the most popular resolution-style format. E := (¯ a ∨ ¯ b ) ∧ ( a ∨ ¯ b ∨ c ) ∧ ( a ∨ c ) ∧ (¯ a ∨ b ) ∧ (¯ b ) ∧ ( b ∨ ¯ c ) TraceCheck is readable and resolution chains make it relatively compact The clauses 1 to 6 are input clauses 1 -2 3 0 0 Clause 7 is the resolvent 4 and 5 : 2 3 0 0 1 ◮ (¯ a ∨ ¯ b ) ⋄ ( a ∨ ¯ 3 -1 2 0 0 b ) := (¯ b ) 4 -1 -2 0 0 Clause 8 is the resolvent 1 , 2 and 3 : 5 1 -2 0 0 ◮ ( c ) := (¯ b ∨ c ) ⋄ (¯ a ∨ b ) ⋄ ( a ∨ c ) 6 2 -3 0 0 ◮ NB: the antecedents are swapped! 7 -2 0 4 5 0 8 3 0 1 2 3 0 Clause 9 is the resolvent 6 , 7 and 8 : 9 0 6 7 8 0 c ) ⋄ (¯ ◮ ǫ := ( b ∨ ¯ b ) ⋄ ( c ) 16/32

  18. Proof Formats: TraceCheck Don’t Cares Support for unsorted clauses, unsorted antecedents and omitted literals. ◮ Clauses are not required to be sorted based on the clause index 8 3 0 1 2 3 0 7 -2 0 4 5 0 ≡ 7 -2 0 4 5 0 8 3 0 1 2 3 0 ◮ The antecedents of a clause can be in arbitrary order 7 -2 0 5 4 0 7 -2 0 4 5 0 ≡ 8 3 0 3 1 2 0 8 3 0 1 2 3 0 ◮ For learned clauses, the literals can be omitted using * 7 * 5 4 0 7 -2 0 4 5 0 ≡ 8 * 3 1 2 0 8 3 0 1 2 3 0 17/32

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend