Presentation is loading. Please wait.

Presentation is loading. Please wait.

CMU, Oct 4 DPLL-based Checkers for Satisfiability Modulo Theories Cesare Tinelli Department of Computer Science The University of Iowa Joint work with.

Similar presentations


Presentation on theme: "CMU, Oct 4 DPLL-based Checkers for Satisfiability Modulo Theories Cesare Tinelli Department of Computer Science The University of Iowa Joint work with."— Presentation transcript:

1 CMU, Oct 4 DPLL-based Checkers for Satisfiability Modulo Theories Cesare Tinelli Department of Computer Science The University of Iowa Joint work with Jed Hagen (Iowa) Robert Nieuwenhuis, Albert Oliveras (TUC)

2 CMU, Oct 4 Talk Plan Propositional satisfiability and the DPLL procedure A calculus for DPLL Satisfiability modulo theories The DPLL( T 1,…T n ) calculus Implementing the DPLL( T 1,…T n ) calculus Some experimental results

3 CMU, Oct 4 Background Propositional satisfiability (SAT) is one of the most fundamental problems in AI and CS. SAT is decidable, but it is NP-complete. An effective method for SAT was pioneered by Davis, Putman, Logemann, and Loveland (DPLL). The best modern SAT solvers (Chaff, Berkmin, Siege, …) are based on DPLL.

4 CMU, Oct 4 The DPLL Procedure as a Calculus Context (partial assignment)

5 CMU, Oct 4 The DPLL Calculus

6 CMU, Oct 4 The DPLL Calculus (cont.) Lits(  ) = { all atoms in  and their negation }

7 CMU, Oct 4 Correctness of DPLL  = { propositional clauses } Prop. Every derivation tree of  |-  is finite. Prop.  is satisfiable iff  |-  has a derivation tree with a successful branch.

8 CMU, Oct 4 Talk Plan Propositional satisfiability and the DPLL procedure A calculus for DPLL Satisfiability modulo theories The DPLL( T 1,…T n ) calculus Implementing the DPLL( T 1,…T n ) calculus Some experimental results

9 CMU, Oct 4 DPLL-based methods can also decide the satisfiability of quantifier-free, first-order formulas Often, however, one is interested in the satisfiability of a quantifier-free formula in a given FO theory T –Example: Is R(a,b)  R(b,c)   R(a,c) satisfiable? What if R stands for a transitive relation? Applications: planning, scheduling, verification, compiler optimization, … Satisfiability Modulo Theories

10 CMU, Oct 4 Current approaches: Eager translation into SAT –Encode problem and theory into an equisatisfiable propositional formula –Feed formula to a SAT-solver Lazy “translation” into SAT –Couple a SAT solver with a decision procedure for the theory Checking Satisfiability Modulo Theories

11 CMU, Oct 4 Fact: Many theories of interest have (efficient) decision procedures for sets of literals. Problem: in practice, dealing with Boolean combinations of literals is as hard as in the propositional case. Solution: use propositional satisfiability technology for the Boolean part. Idea of Lazy Approach

12 CMU, Oct 4 Previous Lazy Approaches [Ar00,Aud02,Ba02,deM02,…]

13 CMU, Oct 4 Our Approach [Tin02, ON03] Embed decision procedures into the SAT solver. More abstractly: Embed decision procedures into the DPLL Calculus.

14 CMU, Oct 4 The DPLL( T ) Calculus iff every model of T that satisfies  also satisfies l Checked by decision procedure for T

15 CMU, Oct 4 The DPLL( T ) Calculus

16 CMU, Oct 4 The DPLL( T ) Calculus All the DPLL rules plus:

17 CMU, Oct 4 Correctness of DPLL( T )  = {quantifier-free clauses in T’s signature} Prop. Every derivation tree of  |-  is finite. Prop.  is T -satisfiable iff  |-  has a derivation tree with a successful branch.

18 CMU, Oct 4 Satisfiability Modulo Multiple Theories Let T 1,…, T n be distinct theories with resp. decision procedures P 1,…, P n How can we reason over all of them with DPLL( T )? Quick Solution: –Combine P 1,…, P n with the Nelson-Oppen method into a decision procedure for T 1  …  T n –Use DPLL( T ) with T = T 1  …  T n

19 CMU, Oct 4 Satisfiability Modulo Multiple Theories Let T 1,…, T n be distinct theories with resp. decision procedures P 1,…, P n How can we reason over all of them with DPLL( T )? Better Solution: –Embed the Nelson-Oppen method directly into the calculus –Turn DPLL( T ) into DPLL( T 1,…, T n )

20 CMU, Oct 4 The DPLL( T 1,…,T n ) Calculus: Preliminaries Let n=2, for simplicity Let T i be a theory of signature  i for i=1,2, with  1   2 =  Assume wlog that each input literal has signature  1 or  2 (no mixed literals)

21 CMU, Oct 4 The DPLL( T 1,…,T n ) Calculus: Notation Lits( , i) = {  i - atoms in  and their negation}  i = {  i - literals of  }  s = { x = y | x, y  vars(  1 )  vars(  2 ) }

22 CMU, Oct 4 The DPLL( T 1,…,T n ) Calculus All the DPLL rules but with newDPLL Only change

23 CMU, Oct 4 The DPLL( T 1,…,T n ) Calculus (cont.) New theory rules ( i=1,2 ):

24 CMU, Oct 4 Correctness of DPLL( T 1,…,T n )  = { quantifier-free clauses in (T 1 ...  T n )’s signature } Prop. If T 1, …, T n are stably-infinite and pairwise signature-disjoint then  is (T 1 ...  T n ) -satisfiable iff  |-  has a derivation tree with a successful branch. A theory T is stably infinite iff every T -satisfiable qff is satisfiable in an infinite model of T A theory T is stably infinite iff every T -satisfiable qff is satisfiable in an infinite model of T

25 CMU, Oct 4 Talk Plan Propositional satisfiability and the DPLL procedure A calculus for DPLL Satisfiability modulo theories The DPLL( T 1,…T n ) calculus Implementing the DPLL( T 1,…T n ) calculus Some experimental results

26 CMU, Oct 4 Making DPLL Efficient Literal selection strategies Intelligent backtracking (backjumping) Learning (lemma generation)

27 CMU, Oct 4 Making DPLL( T 1,…,T n ) Efficient T -based literal selection strategies T -based intelligent backtracking T -based learning

28 CMU, Oct 4 Implementing DPLL( T 1,…,T n ) In theory, it suffices to have decision procedures P i s.t. P i ({l 1, …, l n }) = true iff { l 1, …, l n } is T i -unsatisfiable In practice, it is better if to have a solver for each T i with additional functionalities

29 CMU, Oct 4 T i -solver Interface type status = Valid | Unsat | Undef type lit = sign * pred Class Solver { attr context : lit list meth status : pred  status meth explanation : pred  lit set meth assert : lit  lit set meth backtrack : int  unit }

30 CMU, Oct 4 T i -solver Specification type status = Valid | Unsat | Undef type lit = sign * pred Class Solver { attr context : lit list … meth status (p : pred) : status ensures result = Valid context |= T p & result = Unsat context |= T ~p … }

31 CMU, Oct 4 T i -solver Specification type status = Valid | Unsat | Undef type lit = sign * pred Class Solver { attr context : lit list … meth explanation (p : pred) : lit set requires status(p) != Undef ensures result  context & status(p) = Valid => result |= T p & status(p) = Unsat => result |= T ~p … }

32 CMU, Oct 4 T i -solver Specification type status = Valid | Unsat | Undef type lit = sign * pred Class Solver { attr context : lit list … meth assert ((sign,p) : lit) : lit set requires status(p) = Undef ensures context’ = (sign,p)::context & (sign,p)  result & forall (lit  result) context’ |= T lit & not(context |= T lit) … }

33 CMU, Oct 4 T i -solver Specification type status = Valid | Unsat | Undef type lit = sign * pred Class Solver { attr context : lit list … meth backtrack (n : int) : unit requires 1 <= n & n <= length(context) ensures context = lit 1 :: … ::lit n ::context’ … }

34 CMU, Oct 4 Talk Plan Propositional satisfiability and the DPLL procedure A calculus for DPLL Satisfiability modulo theories The DPLL( T 1,…T n ) calculus Implementing the DPLL( T 1,…T n ) calculus Some experimental results

35 CMU, Oct 4 Experimental Results T = theory of successor and predecessor + free symbols p(s(x)) = x s(p(x)) = x p(x) = p(y) => x = y s(x) = s(y) => x = y 0  p n (x)(for each n > 0) 0  s n (x) (for each n > 0) p n (x)  p m (x) (for each m,n with m > n > 0) s n (x)  s m (x) (for each m,n with m > n > 0) Popular in hardware verification

36 CMU, Oct 4 Experimental Results T -solver based on a novel congruence closure algorithm [ON03] DPLL( T ) engine with: – Chaff-style literal selection function – 2-watched literal unit propagation – conflict set-based backjumping – 1st-UIP lemma generation C implementation

37 CMU, Oct 4 Experimental Results Benchmarks produced with UCLID tool [BLJ02] Comparisons with –SVC –4 SAT-translation methods by Bryant et al. Machine: Pentium IV, 2.63 GHz, 512MB RAM Times in seconds, with timeout at 6000s

38 CMU, Oct 4 See external table

39 CMU, Oct 4 Conclusions DPLL( T 1,…,T n ) is a sound and complete calculus for satisfiability modulo T 1  …  T n. General framework for integrating decision procedures into the DPLL method. Decision procedures drive the derivation instead of just validating solutions. Major optimization techniques from SAT can be lifted to DPLL( T 1,…,T n ). Initial experimental results are very promising

40 CMU, Oct 4 Further Work (in Progress) New version of the DPLL( T ) calculus, to model more accurately modern SAT engines Non-clausal version of DPLL( T ) Implementation with more theories A DPLL( T )-based system for solving integer linear programming (optimization) problems


Download ppt "CMU, Oct 4 DPLL-based Checkers for Satisfiability Modulo Theories Cesare Tinelli Department of Computer Science The University of Iowa Joint work with."

Similar presentations


Ads by Google