SAT-Solving: From Davis- Putnam to Zchaff and Beyond Day 3: Recent Developments. Lintao Zhang

Similar documents
Solvers for the Problem of Boolean Satisfiability (SAT) Will Klieber Aug 31, 2011

An instance of SAT is defined as (X, S)

Automated Program Verification and Testing 15414/15614 Fall 2016 Lecture 3: Practical SAT Solving

From SAT To SMT: Part 1. Vijay Ganesh MIT

VLSI CAD: Lecture 4.1. Logic to Layout. Computational Boolean Algebra Representations: Satisfiability (SAT), Part 1

Lecture 2: Symbolic Model Checking With SAT

EECS 219C: Computer-Aided Verification Boolean Satisfiability Solving III & Binary Decision Diagrams. Sanjit A. Seshia EECS, UC Berkeley

Chapter 2. Reductions and NP. 2.1 Reductions Continued The Satisfiability Problem (SAT) SAT 3SAT. CS 573: Algorithms, Fall 2013 August 29, 2013

LOGIC PROPOSITIONAL REASONING

Propositional Logic: Evaluating the Formulas

Chapter 7 R&N ICS 271 Fall 2017 Kalev Kask

Heuristics for Efficient SAT Solving. As implemented in GRASP, Chaff and GSAT.

Lecture Notes on SAT Solvers & DPLL

Topics in Model-Based Reasoning

1 Algebraic Methods. 1.1 Gröbner Bases Applied to SAT

Tutorial 1: Modern SMT Solvers and Verification

Comp487/587 - Boolean Formulas

SAT, CSP, and proofs. Ofer Strichman Technion, Haifa. Tutorial HVC 13

Integrating a SAT Solver with an LCF-style Theorem Prover

Foundations of Artificial Intelligence

The Class NP. NP is the problems that can be solved in polynomial time by a nondeterministic machine.

Formal Verification Methods 1: Propositional Logic

Verification using Satisfiability Checking, Predicate Abstraction, and Craig Interpolation. Himanshu Jain THESIS ORAL TALK

An Introduction to SAT Solving

SAT Solvers: Theory and Practice

Clause/Term Resolution and Learning in the Evaluation of Quantified Boolean Formulas

Price: $25 (incl. T-Shirt, morning tea and lunch) Visit:

COMP219: Artificial Intelligence. Lecture 20: Propositional Reasoning

SAT, NP, NP-Completeness

Solving SAT Modulo Theories

Complexity Theory VU , SS The Polynomial Hierarchy. Reinhard Pichler

Outline. Complexity Theory EXACT TSP. The Class DP. Definition. Problem EXACT TSP. Complexity of EXACT TSP. Proposition VU 181.

Chapter 7 Propositional Satisfiability Techniques

Foundations of Artificial Intelligence

Satisfiability Modulo Theories

Algorithms. NP -Complete Problems. Dong Kyue Kim Hanyang University

Reasoning with Quantified Boolean Formulas

SMT Unsat Core Minimization

Planning as Satisfiability

Chapter 7 Propositional Satisfiability Techniques

Propositional and First Order Reasoning

Decision Procedures for Satisfiability and Validity in Propositional Logic

Binary Decision Diagrams and Symbolic Model Checking

SAT in Formal Hardware Verification

PROPOSITIONAL LOGIC. VL Logik: WS 2018/19

Lecture 2 Propositional Logic & SAT

Preprocessing QBF: Failed Literals and Quantified Blocked Clause Elimination

Lecture 9: The Splitting Method for SAT

Essential facts about NP-completeness:

Logical Agents. Chapter 7

1 Propositional Logic

Critical Reading of Optimization Methods for Logical Inference [1]

Warm-Up Problem. Is the following true or false? 1/35

EE562 ARTIFICIAL INTELLIGENCE FOR ENGINEERS

Mathematical Logic Part Three

CS:4420 Artificial Intelligence

Satisfiability Modulo Theories (SMT)

Artificial Intelligence

IC3 and Beyond: Incremental, Inductive Verification

Satisfiability Modulo Theories (SMT)

Intelligent Agents. Pınar Yolum Utrecht University

Chapter 3 Deterministic planning

Logical agents. Chapter 7. Chapter 7 1

Propositional Logic: Models and Proofs

Fast Static Learning and Inductive Reasoning with Applications to ATPG Problems

Satisfiability and SAT Solvers. CS 270 Math Foundations of CS Jeremy Johnson

Logical agents. Chapter 7. Chapter 7 1

CS156: The Calculus of Computation

USING SAT FOR COMBINATIONAL IMPLEMENTATION CHECKING. Liudmila Cheremisinova, Dmitry Novikov

Logic in AI Chapter 7. Mausam (Based on slides of Dan Weld, Stuart Russell, Subbarao Kambhampati, Dieter Fox, Henry Kautz )

Propositional Logic. Methods & Tools for Software Engineering (MTSE) Fall Prof. Arie Gurfinkel

TDT4136 Logic and Reasoning Systems

Quantified Boolean Formulas Part 1

Principles of AI Planning

an efficient procedure for the decision problem. We illustrate this phenomenon for the Satisfiability problem.

A New Look at BDDs for Pseudo-Boolean Constraints

Propositional Logic: Methods of Proof (Part II)

Computational Logic. Davide Martinenghi. Spring Free University of Bozen-Bolzano. Computational Logic Davide Martinenghi (1/30)

Improvements to Core-Guided Binary Search for MaxSAT

Bounded Model Checking with SAT/SMT. Edmund M. Clarke School of Computer Science Carnegie Mellon University 1/39

Watched Literals in a Finite Domain SAT Solver A THESIS SUBMITTED TO THE FACULTY OF THE GRADUATE SCHOOL OF THE UNIVERSITY OF MINNESOTA BY.

Value-Ordering and Discrepancies. Ciaran McCreesh and Patrick Prosser

NP-Completeness. Andreas Klappenecker. [based on slides by Prof. Welch]

arxiv: v3 [cs.lo] 11 Jul 2016

Principles of AI Planning

ahmaxsat: Description and Evaluation of a Branch and Bound Max-SAT Solver

Solving and Verifying Hard Problems using SAT

Logic in AI Chapter 7. Mausam (Based on slides of Dan Weld, Stuart Russell, Dieter Fox, Henry Kautz )

Cardinality Networks: a Theoretical and Empirical Study

NP and Computational Intractability

Introduction to Artificial Intelligence Propositional Logic & SAT Solving. UIUC CS 440 / ECE 448 Professor: Eyal Amir Spring Semester 2010

Scalable and Accurate Verification of Data Flow Systems. Cesare Tinelli The University of Iowa

CS 380: ARTIFICIAL INTELLIGENCE PREDICATE LOGICS. Santiago Ontañón

The SAT Revolution: Solving, Sampling, and Counting

The Eager Approach to SMT. Eager Approach to SMT

Title: Logical Agents AIMA: Chapter 7 (Sections 7.4 and 7.5)

Pythagorean Triples and SAT Solving

CS 380: ARTIFICIAL INTELLIGENCE

9. PSPACE 9. PSPACE. PSPACE complexity class quantified satisfiability planning problem PSPACE-complete

9. PSPACE. PSPACE complexity class quantified satisfiability planning problem PSPACE-complete

Transcription:

SAT-Solving: From Davis- Putnam to Zchaff and Beyond Day 3: Recent Developments

Requirements for SAT solvers in the Real World Fast & Robust Given a problem instance, we want to solve it quickly Reliable Can we depend on the SAT solver? i.e. is the solver bug free? Feature Rich Incremental SAT Solving Unsatisfiable Core Extraction What are the other desirable features? Beyond SAT Pseudo Boolean Constraint Multi-Value SAT solving Quantified Boolean Formula (QBF)

Resolution Resolution of a pair of clauses with exactly ONE incompatible variable Two clauses are said to have distance 1 a + b + c + f g + h + c + f a + b + g + h + f

Conflict Analysis as Resolution V 3 (2) -V 2 (1) (V 2 + V 3 + V 5 +V 6 ) -V 6 (5) V 4 (5) V 1 (5) -V 1 (5) (V 3 +V 6 +V 4 ) (V 6 +V 5 +V 1 ) (V 2 +V 4 +V 6 + V 1 ) (V 2 +V 4 +V 6 +V 5 ) (V 2 + V 3 + V 5 +V 6 ) V 5 (3)

Key Observations DLL with learning is nothing but a resolution process Has the same limitation as resolution Certain class of instances require exponential sized resolution proof. Therefore, it will take exponential time for DLL SAT solver We can use this for Certification / Correctness Checking Unsatisfiable Core Extraction Incremental SAT solving

Motivation for SAT Solver Validation Certify automatic reasoning tools: Required for mission critical applications Train Station Safety Check Available for some theorem provers and model checkers Do we really need the validation? Modern SAT solvers are intricate pieces of software (e.g. zchaff contains about 10,000 lines of code) Bugs are abundant in SAT solvers

Certify a SAT Solver The correctness of a SAT solver: If it claims the instance is satisfiable, it is easy to check the claim. How about unsatisfiable claims? Traditional method: run another SAT Solver Time consuming, and cannot guarantee correctness Needs a formal check for the proof, similar to the check for the validity of a proof in math. Must be automatic. Must be able to work with current state-of-the-art SAT solvers

DLL with Learning while(1) { if (decide_next_branch()) { //Branching while(deduce()==conflict) { //Deducing blevel = analyze_conflicts(); //Learning if (blevel < 0) return UNSAT; else back_track(blevel); //Backtracking } else //no branch means all variables got assigned. return SATISFIABLE; }

Correct in Unsatisfiable Case (x 4 ) (x 4 +x 3 ) (x 1 ) (x 1 +x 3 +x 5 +x 7 ) (x 4 +x 3 +x 5 ) (x 7 +x 5 ) (x 1 +x 3 +x 5 ) (x 1 +x 4 ) (x 1 +x 4 +x 3 ) (x 4 ) () Final Conflicting Clause

Resolution Graph Empty Clause Original Clauses Learned Clauses

An Independent Checker Strategy: SAT solver dump out a trace during the solving process representing the resolution graph Using a third party checker to construct the empty clause by resolution using the hint provided by the trace Trace only contain resolve sources of each learned clauses. Need to reconstruct the clause literals by resolution from original clauses

Practical Implementation: Depth First Start from the empty clause, recursively reconstruct all needed clause. Fast, because it only needs to reconstruct clauses that are needed for the proof. But may fail because of memory overflow on hard instances.

Depth First Approach Empty Clause Original Clauses Learned Clauses

Practical Implementation: Breadth First Start from the original clauses and construct clauses in the same order as they appear Slower, because all the clauses need to be reconstructed No memory overflow problem if we delete clauses when they are not needed anymore.

Breadth First Approach Empty Clause Original Clauses Learned Clauses

Calculate Fan-outs in Breadth First Approach 0 3 1 2 0 Empty Clause 3 2 2 0 2 1 1 1 0 3 0 1 Original Clauses Learned Clauses

Calculate Fan-outs in Breadth First Approach 0 3 1 2 0 Empty Clause 3 2 2 0 2 1 1 1 0 3 0 1 Original Clauses Learned Clauses

Experimental Results Instance Name 2dlx_cc_mc_ex_bp_f bw_large.d c5315 too_largefs3w8v262 c7552 5pipe_5_ooo barrel9 longmult12 9vliw_bp_mc 6pipe_6_ooo 6pipe 7pipe Num. Variables 4583 5886 5399 2946 7652 10113 8903 5974 20093 17064 15800 23910 Orig. Num. Clauses 41704 122412 15024 50216 20423 240892 36606 18645 179492 545612 394739 751118 Runtime 3.3 5.9 22.0 40.6 64.4 118.8 238.2 296.7 376.0 1252.4 4106.7 13673.0 Trace Overhead 11.89% 9.12% 10.45% 7.68% 8.76% 4.51% 4.51% 6.17% 4.26% 3.39% 2.77% 1.68% * Experiments are carried out on a PIII 1.13Ghz Machine with 1G Mem

Experimental Results 62620 645.33 * * 7pipe 40248 301.98 * * 6pipe 40136 102.67 249468 38.5 6pipe_6_ooo 17724 33.81 126752 12.8 9vliw_bp_mc 7488 41.22 154288 25.9 longmult12 6752 10.46 31456 4.85 barrel9 17936 13.29 50044 6.6 5pipe_5_ooo 5976 11.44 41420 6.16 c7552 6164 5.47 26752 3.79 too_large 3732 5.19 18108 2.8 c5315 9920 2.44 8720 1.48 bw_large.d 4652 1.30 7860 0.84 2dlx Mem(k) Time(s) Mem(k) Time(s) Breadth-First Depth-First Instance Name

Unsatisfiable Core Extraction: Problem Definition Given an unsatisfiable Boolean Formula in CNF F=C 1 C 2...C n Find a formula G=C 1 C 2...C m Such that G is unsatisfiable, C i {C i i=1...n} with m n Example: (a) (a + b )(b + a )(c + a + d)(c + d) (d + a )

Unsatisfiable Core Extraction: Problem Definition Given an unsatisfiable Boolean Formula in CNF F=C 1 C 2...C n Find a formula G=C 1 C 2...C m Such that G is unsatisfiable, C i {C i i=1...n} with m n Example: (a) (a + b )(b + a )(c + a + d)(c + d) (d + a )

Unsatisfiable Core Extraction: Problem Definition Given an unsatisfiable Boolean Formula in CNF F=C 1 C 2...C n Find a formula G=C 1 C 2...C m Such that G is unsatisfiable, C i {C i i=1...n} with m n Example: (a) (a + b )(b + a )(c + a + d)(c + d) (d + a )

Motivation Debugging and redesign: SAT instances are often generated from real world applications with certain expected results: If the expected results is unsatisfiable, but we found the instance to be satisfiable, then the solution is a counter example or input vector for debugging Train station safety checking Combinational Equivalence Checking What if the expected results is satisfiable? SAT Planning FPGA Routing Relaxing constraints: If several constraints make a safety property holds, are there any redundant constraints in the system that can be removed without violate the safety property? Abstraction for model checking: Ken McMillan & Nina Alma, TACAS03; A. Gupta et al, ICCAD 2003

Proposed Approach Empty Clause Original Clauses Learned Clauses

Proposed Approach Empty Clause Original Clauses Learned Clauses

Proposed Approach Empty Clause Involved Clauses Original Clauses Learned Clauses

Implementation Issues No need to check the integrity of the graph Graph too large, have to traverse on disk The nodes of the graph is already topologically ordered But we need to reverse it Can iteratively run the procedure to obtain smaller cores Cannot guarantee the core to be minimal or minimum. Depends on the SAT solver for the quality of the core extracted

Experimental Results Run Time (s) 152.71 99.96 37.14 10.68 21.31 4.66 6.62 5.37 2.65 2.64 1.54 0.85 33.1% 12975 180559 17064 545612 6pipe_6_ooo 29.3% 20188 221070 23910 753118 7pipe 32.1% 13156 126469 15469 394739 6pipe 37.0% 16737 66458 19148 179492 9vliw_bp_mc 57.5% 4532 10727 5974 18645 longmult12 65.2% 8604 23870 8903 36606 Barrel9 23.9% 7494 57515 10113 240892 5pipe_5_ooo 97.5% 7651 19912 7651 20423 C7552 20.0% 2946 10060 2946 50216 too_large 95.4% 5399 14336 5399 15024 C5315 6.7% 3107 8151 5886 122412 bw_large.d 26.8% 3145 11169 4524 41704 2dlx Num. Vars Num. Cls Num.Vars Num Cls Clause Ratio After Before Instance Name

Core Extracted After Several Iterations 5pipe_5_ooo barrel9 1.6 1.6 1.4 1.4 1.2 1.2 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 1 6 11 16 21 26 0 1 6 11 16 21 26 bw_large.d too_largefs3w8v262 1.6 1.6 1.4 1.4 1.2 1.2 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 1 6 11 16 21 26 0 1 6 11 16 21 26

The Quality of the Core Extracted Start from the smallest core that can be extracted by the proposed method (i.e. run till fixed point), delete clauses one by one till no clause can be deleted without change the satisfiability of the formula. The resulting core is a minimal core for the formula. Finding minimal core is time consuming. Benchmark Original Extracted Iterations Minimal Clause Instance #Cls # Cls #Cls Ratio 2dlx_cc_mc_ex_bp_f 41704 8036 26 7882 1.020 Bw_large.d 122412 1352 35 1225 1.104 Too_largefs3w8v262 50416 4464 32 3765 1.186

Incremental SAT Solving In real world, multiple SAT instances are generated to solve one problem Combinational Equivalence Checking: equivalence multiple outputs are checked one by one Bounded Model Checking: properties are checked at 1, 2, 3 n cycles. These multiple SAT instances are often very similar, or have large common part Traditionally we solve them one by one independently Can we do better?

Incremental SAT Solving Previous efforts are recorded in the learned clauses Try to keep the learned clauses To solve a series of SAT instances that differ only a little bit, we need to be able to Add constraints to the clause database (easy) If the original instance is UNSAT, the new instance is still UNSAT If the original instance is SAT, while added constraint clauses are not conflicting under the satisfying assignment, then the new instance is still SAT Otherwise, resolve the conflict and continue solve Delete constraints from the database (tricky) Some of the learned clauses are invalidated Ofer Strichman, CAV2000

Find the Learned Clauses that are Invalidated 1 2 23 234 2347 3 23578 4 34 347 5 6 47 3478 57 7 8 78 Original Clauses Learned Clauses

Find the Learned Clauses that are Invalidated 1 2 23 234 2347 3 23578 4 34 347 5 6 47 3478 57 7 8 78 Original Clauses Learned Clauses

Find the Learned Clauses that are Invalidated 1 2 23 234 2347 3 23578 4 34 347 5 6 47 3478 57 7 8 78 Original Clauses Learned Clauses

Engineering Questions How to do this efficiently? It s too expensive for each learned clause to carry with it all it s resolve sources Solution Arrange the clauses into groups. Clauses are added and deleted a group at a time Using bit vector for carrying the group information for each clause: 32 bit machine can have 32 groups of clauses, enough for most applications

Using SAT Techniques for Other types of Constraints SAT Limitations Variables are in Boolean Domain Constrains are expressed as clauses E.g. at least one of the literals in each clause must be true SAT Advantages DLL algorithm is highly polished, many well studied heuristics Very fast BCP Learning and non-chronological backtracking Can we remove some of the limitations while still retain the powerful SAT solving techniques? Pseudo Boolean Constraint, Fadi Alou etc. PBS Multi Value SAT, Cong Liu etc. CAMA Quantified Boolean Solver

Pseudo Boolean (PB) Constraints Solver PB Constraints Definition c i Examples: c1 x1 +L+ cn xn ~, g Z ~ { =,, } 3 x 1 + x 2 + 5 x 3 = 2 4 x 1-5 x 3 >= 3 g x i Literals

Pseudo Boolean (PB) Constraints Solver Clauses can be generalized as a PB constraint: ( x y) ( x + y 1) Convert arbitrary PB constraints to normal form: c 1 x1 +L+ c e.g. n x n g 3x1 + 2x2 1 ( 3x1 + 2x2) ( 3x1 2x2 1 3x1 2(1 x2) 1 3x1 + 2x2 3 1) Positive coefficients Constraint type: Faster manipulation

PB-SAT Algorithms Struct PBConstraint: Goal n LHS List of c i and x i s value of RHS value of LHS based on current variable assignment For efficiency: Sort the list of cixi in order of increasing ci

PB-SAT Algorithms Assigning vi to 1: For each literal xi of vi If positive xi, LHS += ci Unassigning vi from 1: For each literal xi of vi If positive xi, LHS -= ci PB constraint state UNS: LHS > goal 5x 1 +6x 2 +3x 3 12 LHS = 0 5x 1 +6x 2 +3x 3 12 LHS = 5 5x 1 +6x 2 +3x 3 12 LHS = 8 LHS < goal SATISFIABLE

PB-SAT Algorithms Identifying implications if ci > goal LHS, xi = 0 Implied by literals in PB assigned to 1 5x 1 +6x 2 +3x 3 12 LHS = 0 goal - LHS = 12 5x 1 +6x 2 +3x 3 12 LHS = 8 goal - LHS = 4 Imply x 2 =0

PB-SAT Algorithms Identifying conflicts if LHS > goal Conflicting assignment: consists of the subset of true literals whose sum of coefficients exceeds the goal. 5x 1 +6x 2 +3x 3 7 LHS = 0 5x 1 +6x 2 +3x 3 7 LHS = 14 LHS > goal conflicting assignment = {x 1, x 2 }

SAT Solving on Multi-Value Domain Let x i denote a multi-valued variable with domain P i ={0,1,, P i -1}. x i is assigned to a non-empty value set v i, if x i can take any value from v i P i but no value from P i \v i if v i = 1, completely assigned, e.g. x := {2} otherwise incompletely assigned, e.g. x := {0,2} s A multi-valued literal i is the Boolean function defined by s x i i ( xi = γ1) + L + ( xi = γ k) where γ i si Pi; si is the literal value set x i

Multi-Value SAT A multi-valued clause is a logical disjunction of one or more MV literals. A formula in multi-valued conjunctive normal form (MV-CNF) is the logical conjunction of a set of multi-valued clauses. A MV SAT problem given in MV-CNF is Satisfiable if there exists a set of complete assignments to all variables such that the formula evaluates to true. It is unsatisfiable if no such assignment exists.

Resolution Recall: Binary clause resolution: ( li + x) ( li' + x) ( l + l ') variable x is eliminated i i MV resolution provides generalized case s ' i s s j s' i + i + s s' i j s s' xi + x i + x ( x x ) ( x' ' x ) ( ' ' ) ( x1 ' + x3) ( x2 + x3 ' + x4) ( x ' + x + x ) 1 2 4 ( x + x ) ( x ) ( x ) {0,2} {2, 3} ( x1 + x3 ) {3} {1,2} {0,2} 1 + x2 + x3 {0,2,3} {1,2} {1,2} {0,2,3} { 2} 1 ( x + x2 + x 2 + x3 ) 3 take intersection of literal value sets of the resolving variable x

Decision Binary case: either 0 or 1 is assigned MV Case: (2 P -2) possible assignments initially E.g. P={0,1,2}: {0}, {1}, {2}, {0,1}, {0,2}, {1,2} Large decision scheme: Pick one value from value set of selected variable Max depth of decision stack = # variables n Learning by contra-positive only forbids one value Small decision scheme: Exclude one value Max depth of decision stack = n i= 1 P i

Boolean Constraint Propagation ω = ( x + x ) {1} {0,1} 1 3 2 ω = ( x + x + x ) {1,3} {0} {1} 2 4 3 1 ω = ( x + x + x ) {2} {2,3} {3} 3 2 1 4 P1 = P2 = P3 = P4 = {0,1, 2,3} x = {0}@ d1 4 x3 = {3}@ d2 x 2 = {0,1}@ d2 ω 1 x 1 = {1}@ d2 ω 2 Conflict ω 3 Implication Graph (IG)

Conflict Analysis by Cut Cut at x3 and x4 as first UIP x = {0}@ d1 4 x3 = {3} @ d2 x 2 = {0,1}@ d2 ω 1 x 1 = {1}@ d2 ω 2 Conflict ω 3 x = {0} x = {3} Conflict 4 3 By contra-positive we learn {1,2,3} {0,1,2} ω cut = ( x4 + x3 )

Conflict Analysis by Resolution x = {0}@ d1 4 x3 = {3}@ d2 ω = ( x + x ) {1} {0,1} 1 3 2 ω = ( x + x + x ) {1,3} {0} {1} 2 4 3 1 {2} {2,3} {3} 3 2 1 4 x 2 = {0,1}@ d2 ω 1 x 1 ω = {1}@ d2 ω akk 2 Conflict ω = ω = ( x + x + x ) {2} {2,3} {3} 3 2 1 4 ω = ( x + x + x ) {1,3} { 0} {1} 2 4 3 1 {2} {1,3} {0} ω ' akk = ( x2 + x4 + x3 ) ω = ( x + x ) ω = ( x + x + x ) {1} {0,1} 1 3 2 {1,3} {0,1} 4 3 ωlearn = ω' akk = ( x + x ) 3

MV-Conflict Analysis The learned clause is strictly stronger than the cut clause {1,2,3} {0,1, 2} ω cut = ( x4 + x3 ) {1,3} {0,1} ω learn = ( x4 + x3 ) Cut clause forbids: x = {0} x = {3} Learned clause forbids: x4 = {0} x3 = {3}, x x4 = {2} x3 = {2}, x As if decisions were: x 4 3 4 2 = {0} x = {2}, = {2} x = {3} 4 3 4 3 = {0, }@ d1; x3 = {, 2 3}@ d 2 Never visited before Bigger search space

Pseudo Boolean Constraints and Multi-Value Constraints They REALLY look like Boolean Satisfiability Solvers!!!

QBF: Quantified Boolean Formula Quantified Boolean Formula Q 1 x 1 Q n x n ϕ Example: x y(x+y )(x +y) de xyz abc f(a,b,c,d,e,x,y,z) QBF Problem: Is F satisfiable?

Why Bother P-Space Complete, theoretically harder than NP-Complete problems such as SAT. Has practical Applications: AI Planning Sequential Circuit Verification Similarities with SAT Leverage SAT techniques

Basic DLL Flow for QBF x y (x + y)(x + y ) Unknown True (1) False(0)

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 Unknown True (1) False(0)

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 Unknown True (1) False(0) y = 1

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 Unknown True (1) False(0) y = 1

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 Backtrack Unknown True (1) False(0) y = 1

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 x = 0 Unknown True (1) False(0) y = 1

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 x = 0 Unknown True (1) False(0) y = 1 y = 1

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 x = 0 Unknown True (1) False(0) y = 1 y = 1 y = 0

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 x = 0 Unknown True (1) False(0) y = 1 y = 1 y = 0

Basic DLL Flow for QBF x y (x + y)(x + y ) False x = 1 x = 0 Unknown True (1) False(0) y = 1 y = 1 y = 0

Basic DLL Flow for QBF x y (x + y)(x + y ) Unknown True (1) False(0)

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 Unknown True (1) False(0)

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 Unknown True (1) False(0) y = 1

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 Unknown True (1) False(0) y = 1 y = 0

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 Unknown True (1) False(0) y = 1 y = 0

Basic DLL Flow for QBF x y (x + y)(x + y ) x = 1 x = 0 Unknown True (1) False(0) y = 1 y = 0 y = 1

Basic DLL Flow for QBF x y (x + y)(x + y ) True x = 1 x = 0 Unknown True (1) False(0) y = 1 y = 0 y = 1

QBF: Conclusions QBF solving is much more difficult than SAT No existing QBF solver is of much practical use It s possible to incorporate learning and non-chronological backtracking into a DLL based QBF solver Unlike SAT, where DLL seems to be the predominant solution, it s still unclear what is the most efficient approach to QBF Attracted a lot of interest recently, much more research effort is needed to make QBF solving practical Chicken egg problem