Model-Constructing Satisfiability Calculus Dejan Jovanovi´ c Clark Barrett Leonardo de Moura SRI International NYU Microsoft Research
Satisfiability Modulo Theories and DPLL(T) Problem Check a given formula for satisfiability modulo the union of background theories. Example (QF UFLRA) ( z = 1 ∨ z = 0 ) ∧ ( x − y + z = 1 ) ∧ ( f ( x ) > f ( y )) Main idea behind DPLL(T) use a SAT solver to enumerate the Boolean structure, 1 check Boolean assignments with a decision procedure. 2
Satisfiability Modulo Theories and DPLL(T) a 0 >a 3 a 2 <b 2 a 0 <b 0 b 0 <a 1 a 1 <b 1 b 2 <a 3 b 1 <a 2 a 3 c 0 <a 1 c 1 <a 2 < a 0 <c 0 a 1 <c 1 a c 2 < 2 c 2 Example (Diamonds) n − 1 � a 0 > a n ∧ (( a k < b k ∧ b k < a k + 1 ) ∨ ( a k < c k ∧ c k < a k + 1 )) k = 0
Satisfiability Modulo Theories and DPLL(T) a 0 >a 3 a 2 <b 2 a 0 <b 0 b 0 <a 1 a 1 <b 1 b 2 <a 3 b 1 <a 2 a 3 c 0 <a 1 c 1 <a 2 < a 0 <c 0 a 1 <c 1 a c 2 < 2 c 2 Example (Diamonds) n − 1 � a 0 > a n ∧ (( a k < b k ∧ b k < a k + 1 ) ∨ ( a k < c k ∧ c k < a k + 1 )) k = 0
Satisfiability Modulo Theories and DPLL(T) a 0 >a 3 a 2 <b 2 a 0 <b 0 b 0 <a 1 a 1 <b 1 b 2 <a 3 b 1 <a 2 a 3 c 0 <a 1 c 1 <a 2 < a 0 <c 0 a 1 <c 1 a c 2 < 2 c 2 Example (Diamonds) n − 1 � a 0 > a n ∧ (( a k < b k ∧ b k < a k + 1 ) ∨ ( a k < c k ∧ c k < a k + 1 )) k = 0
Satisfiability Modulo Theories and DPLL(T) a 0 >a 3 a 2 <b 2 a 0 <b 0 b 0 <a 1 a 1 <b 1 b 2 <a 3 b 1 <a 2 a 3 c 0 <a 1 c 1 <a 2 < a 0 <c 0 a 1 <c 1 a c 2 < 2 c 2 Example (Diamonds) n − 1 � a 0 > a n ∧ (( a k < b k ∧ b k < a k + 1 ) ∨ ( a k < c k ∧ c k < a k + 1 )) k = 0
Alternative: Model-Based Procedures Linear Real Arithmetic MKS 2009 Generalizing DPLL to Richer Logics KTV 2009 Conflict Resolution C 2010 Natural Domain SMT Linear Integer Arithmetic JdM 2011 Cutting to the Chase: Solving Linear Integer Arithmetic Non-Linear Real Arithmetic JdM 2012 Solving Non-Linear Arithmetic
Alternative: Model-Based Procedures Goals General framework for model-based decision procedures Allow for Boolean structure Allow for multiple theories (QF UFLRA) Efficient! (even for simple theories)
Boolean Satisfiability x n ∨ · · · ∨ x 1 ∨ y m ∨ · · · ∨ y 1 Resolution-Based procedure by Davis, Putnam (1960) Search-Based procedure by Davis, Logemann, Loveland (1962) Resolution (DP) Search (DLL) Find a proof Find a model Saturation Search and backtracking Exponential Exponential
Boolean Satisfiability: CDCL [1996] Marques-Silva, Sakallah GRASP : A new search algorithm for satisfiabiliy [2001] Moskewicz, Madigan, Zhao, Zhang, Malik CHAFF : Engineering an efficient SAT solver c h r a e S Conflict-Directed Clause Learning CDCL Use the search to guide resolution R Use resolution to guide the search e s o l v e
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x ��
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x �
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x , y �
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x Unit Propagation � x , y � ( x ∨ y ∨ z ) is unit, propagate z .
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x , y , z �
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x , y , z �
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x , y , z � Resolve Conflict x ∨ y ∨ z x ∨ y ∨ z x ∨ y
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x , y , z �
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x �
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x , y �
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x , y , z �
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x , y , z �
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x , y , z � Resolve Conflict x ∨ y ∨ z x ∨ y ∨ z x ∨ y x ∨ y x
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x , y , z �
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x ��
Boolean Satisfiability: CDCL x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y ∨ z x ∨ y x � x �
Boolean Satisfiability: CDCL Model Construction Build partial model by assigning variables to values � . . . , x , . . . , y , . . . , z , . . . � . Unit Reasoning Reason about unit constraints ( x ∨ y ∨ z ∨ w ) . Explain Conflicts Explain conflicts using clausal reasons ( x ∨ y ∨ z ) .
Linear Real Arithmetic Linear Arithmetic a 1 x 1 + · · · + a n x n ≥ b a 1 x 1 + · · · + a n x n = b Current state-of-the-art: Simplex A model builder for a conjunction of linear constraints. Search for a model Escape conflicts through pivoting Built for the DPLL(T) framework [DdM 2006] A fast linear-arithmetic solver for DPLL(T)
Linear Real Arithmetic Linear Arithmetic a 1 x 1 + · · · + a n x n ≥ b a 1 x 1 + · · · + a n x n = b Fourier-Motzkin Resolution 2 x + 3 y − z ≥ − 1 − 3 x − 2 y + 4 z ≥ 2 6 x + 9 y − 3 z ≥ − 3 − 6 x − 4 y + 8 z ≥ 4 5 y + 5 z ≥ 1 Feels like Boolean resolution (elimination). Behaves like Boolean resolution (exponential).
Linear Real Arithmetic Model Construction Build partial model by assigning variables to values � . . . , C 1 , C 2 , . . . , x �→ 1 / 2 , . . . , y �→ 1 / 2 , . . . , z �→ − 1 , . . . � . Unit Reasoning Reason about unit constraints C 1 ≡ ( x + y + z + w ≥ 0 ) C 2 ≡ ( x + y + z − w > 0 ) . Explain Conflicts Explain conflicts using valid clausal reasons ( C 1 ∨ C 2 ∨ x + y + z > 0 ) .
Linear Real Arithmetic 4 3 2 1 � 1 1 2 3 4 5 6 � 1 C 1 C 2 � �� � � �� � 2 y − x − 2 < 0 ∧ − 2 y − x + 4 < 0 �� Explanation C 1 ∧ C 2 = ⇒ x � = 0 . 5
Linear Real Arithmetic 4 3 2 1 � 1 1 2 3 4 5 6 � 1 C 1 C 2 � �� � � �� � 2 y − x − 2 < 0 ∧ − 2 y − x + 4 < 0 � C 1 , C 2 � Explanation C 1 ∧ C 2 = ⇒ x � = 0 . 5
Linear Real Arithmetic 4 3 2 1 � 1 1 2 3 4 5 6 � 1 C 1 C 2 � �� � � �� � 2 y − x − 2 < 0 ∧ − 2 y − x + 4 < 0 � C 1 , C 2 , x �→ 0 . 5 � Explanation C 1 ∧ C 2 = ⇒ x � = 0 . 5
Linear Real Arithmetic 4 3 2 1 � 1 1 2 3 4 5 6 Unit Constraint Reasoning � 1 2 y − x − 2 < 0 = ⇒ ( y < 1 . 25 ) − 2 y − x + 4 < 0 = ⇒ ( y > 1 . 75 ) C 1 C 2 � �� � � �� � 2 y − x − 2 < 0 ∧ − 2 y − x + 4 < 0 � C 1 , C 2 , x �→ 0 . 5 � Explanation C 1 ∧ C 2 = ⇒ x � = 0 . 5
Linear Real Arithmetic 4 3 2 1 � 1 1 2 3 4 5 6 � 1 C 1 C 2 � �� � � �� � 2 y − x − 2 < 0 ∧ − 2 y − x + 4 < 0 � C 1 , C 2 , x �→ 0 . 5 � Explanation C 1 ∧ C 2 = ⇒ x � = 0 . 5
Linear Real Arithmetic 4 3 2 1 � 1 1 2 3 4 5 6 � 1 C 1 C 2 � �� � � �� � 2 y − x − 2 < 0 ∧ − 2 y − x + 4 < 0 � C 1 , C 2 , x �→ 0 . 5 � Explanation C 1 ∧ C 2 = ⇒
Linear Real Arithmetic 4 3 2 1 � 1 1 2 3 4 5 6 � 1 Fourier-Motzkin 2 y − x − 2 < 0 − 2 y − x + 4 < 0 C 1 C 2 � �� � � �� � − 2 x + 2 < 0 2 y − x − 2 < 0 ∧ − 2 y − x + 4 < 0 � C 1 , C 2 , x �→ 0 . 5 � Explanation C 1 ∧ C 2 = ⇒
Recommend
More recommend