An Introduction to Satisfiability Modulo Theories

Size: px
Start display at page:

Download "An Introduction to Satisfiability Modulo Theories"

Transcription

1 ICCAD 2009 Tutorial p. 1/78 An Introduction to Satisfiability Modulo Theories Clark Barrett and Sanjit Seshia

2 ICCAD 2009 Tutorial p. 2/78 Roadmap Theory Solvers Examples of Theory Solvers Combining Theory Solvers Extending Theory Solvers for SMT

3 ICCAD 2009 Tutorial p. /78 Theory Solvers Given a theory T, a Theory Solver for T takes as input a set Φ of literals and determines whether Φ is T -satisfiable. Φ is T -satisfiable iff there is some model M of T such that each formula in Φ holds in M. We next consider some examples of theory solvers.

4 ICCAD 2009 Tutorial p. 4/78 Congruence Closure and QF _UF Recall that QF _UF is the theory with only equality and uninterpreted function symbols. If Γ is a set of equalities and is a set of disequalities, then the satisfiability of Γ in QF _UF can be determined as follows [NO80, DST80]: Let τ be the set of terms appearing in Γ. Let be the equiavlence relation on τ induced by Γ (i.e. t 1 t 2 iff t 1 = t 2 Γ or t 2 = t 1 Γ). Let be the congruence closure of, obtained by closing with respect to the congruence property: s = t f(s) = f(t). Γ is satisfiable iff for each s t, s t.

5 ICCAD 2009 Tutorial p. 5/78 A Solver for QF _UF union and find are abstract operations for manipulating equivalence classes. union(x, y) makes y the new equivalence class representative for x. find(x) returns the unique representative for the equivalence class containing x. The signature of a term is defined as: sig(f(x 1,...,x n )) = f(find(x 1 ),...,find(x n )).

6 ICCAD 2009 Tutorial p. 6/78 A Solver for QF _UF CC(Γ, ) while Γ Remove some equality a = b from Γ; Merge(find(a), find(b)); if find(a) = find(b) for some a b then return False; return True; Merge(a, b) if a = b then return; Let A be the set of terms containing a as an argument union(a, b); foreach x A if sig(x) = sig(y) for some y then Merge(find(x), find(y));

7 ICCAD 2009 Tutorial p. 7/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) f(a) f(a) f(f(a)) f(f(a)) f(f(a)) f(f(f(a))) f(f(f(a))) f(f(f(a))) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(f(a),b)

8 ICCAD 2009 Tutorial p. 8/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) f(a) f(a) f(f(a)) f(f(a)) f(f(a)) f(f(f(a))) f(f(f(a))) f(f(f(a))) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(f(a),b)

9 ICCAD 2009 Tutorial p. 9/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) f(a) f(a) f(f(a)) a f(f(a)) f(f(f(a))) f(f(f(a))) f(f(f(a))) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(f(a),b)

10 ICCAD 2009 Tutorial p. 10/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) f(a) f(a) f(f(a)) a f(f(a)) f(f(f(a))) f(f(f(a))) f(f(f(a))) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(f(a),b)

11 ICCAD 2009 Tutorial p. 11/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) f(a) f(a) f(f(a)) a f(f(a)) f(f(f(a))) f(f(f(a))) f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(f(a),b)

12 ICCAD 2009 Tutorial p. 12/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) f(a) f(a) f(f(a)) a f(f(a)) f(f(f(a))) f(f(f(a))) f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(f(a),b)

13 ICCAD 2009 Tutorial p. 1/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) f(a) f(a) f(f(a)) a f(f(a)) f(f(f(a))) f(a) f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(f(a),b)

14 ICCAD 2009 Tutorial p. 14/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) f(a) f(a) f(f(a)) a f(f(a)) f(f(f(a))) f(a) f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(f(a),b)

15 ICCAD 2009 Tutorial p. 15/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) f(a) f(a) f(f(a)) a f(f(a)) f(f(f(a))) f(a) f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(f(a),b)

16 ICCAD 2009 Tutorial p. 16/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) a f(a) f(f(a)) a f(f(a)) f(f(f(a))) a f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(f(a),b)

17 ICCAD 2009 Tutorial p. 17/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) a f(a) f(f(a)) a f(f(a)) f(f(f(a))) a f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(f(a),b)

18 ICCAD 2009 Tutorial p. 18/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) a f(a) f(f(a)) a f(a) f(f(f(a))) a f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(a,b)

19 ICCAD 2009 Tutorial p. 19/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) a f(a) f(f(a)) a f(a) f(f(f(a))) a f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a),b) g(f(a),b) g(a,b)

20 ICCAD 2009 Tutorial p. 20/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) a f(a) f(f(a)) a f(a) f(f(f(a))) a f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a), b) g(a, b) g(a, b)

21 ICCAD 2009 Tutorial p. 21/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) a f(a) f(f(a)) a f(a) f(f(f(a))) a f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a), b) g(a, b) g(a, b)

22 ICCAD 2009 Tutorial p. 22/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) a f(a) f(f(a)) a f(a) f(f(f(a))) a f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a), b) g(a, b) g(a, b)

23 ICCAD 2009 Tutorial p. 2/78 Example f(f(a)) = a f(f(f(a))) = a g(a,b) g(f(a),b) t find(t) sig(t) a a a f(a) a f(a) f(f(a)) a f(a) f(f(f(a))) a f(a) b b b g(a, b) g(a, b) g(a, b) g(f(a), b) g(a, b) g(a, b) find(g(a, b)) = find(g(f(a), b)) Unsatisfiable

24 ICCAD 2009 Tutorial p. 24/78 Difference Logic In difference logic [NO05], we are interested in the satisfiability of a conjunction of arithmetic atoms. Each atom is of the form x y c, where x and y are variables, c is a numeric constant, and {=,<,,>, }. The variables can range over either the integers (QF _IDL) or the reals (QF _RDL).

25 ICCAD 2009 Tutorial p. 25/78 Difference Logic The first step is to rewrite everything in terms of :

26 ICCAD 2009 Tutorial p. 25/78 Difference Logic The first step is to rewrite everything in terms of : x y = c = x y c x y c

27 ICCAD 2009 Tutorial p. 25/78 Difference Logic The first step is to rewrite everything in terms of : x y = c = x y c x y c x y c = y x c

28 ICCAD 2009 Tutorial p. 25/78 Difference Logic The first step is to rewrite everything in terms of : x y = c = x y c x y c x y c = y x c x y > c = y x < c

29 ICCAD 2009 Tutorial p. 25/78 Difference Logic The first step is to rewrite everything in terms of : x y = c = x y c x y c x y c = y x c x y > c = y x < c x y < c = x y c 1 (integers)

30 ICCAD 2009 Tutorial p. 25/78 Difference Logic The first step is to rewrite everything in terms of : x y = c = x y c x y c x y c = y x c x y > c = y x < c x y < c = x y c 1 (integers) x y < c = x y c δ (reals)

31 ICCAD 2009 Tutorial p. 26/78 Difference Logic Now we have a conjunction of literals, all of the form x y c. From these literals, we form a weighted directed graph with a vertex for each variable. For each literal x y c, there is an edge x c y. The set of literals is satisfiable iff there is no cycle for which the sum of the weights on the edges is negative. There are a number of efficient algorithms for detecting negative cycles in graphs [CG96].

32 ICCAD 2009 Tutorial p. 27/78 Example: QF _IDL x y = 5 z y 2 z x > 2 w x = 2 z w < 0

33 ICCAD 2009 Tutorial p. 27/78 Example: QF _IDL x y = 5 z y 2 z x > 2 w x = 2 z w < 0 x y = 5 z y 2 z x > 2 w x = 2 z w < 0 w x 2 x w 2

34 ICCAD 2009 Tutorial p. 28/78 Example: QF _IDL x y = 5 z y 2 z x > 2 w x = 2 z w < 0 x y = 5 z y 2 z x > 2 w x = 2 z w < 0 w x 2 x w 2

35 ICCAD 2009 Tutorial p. 29/78 Example: QF _IDL x y = 5 z y 2 z x > 2 w x = 2 z w < 0 x y = 5 x y 5 y x 5 z y 2 y z 2 z x > 2 x z w x = 2 w x 2 x w 2 z w < 0 z w 1

36 ICCAD 2009 Tutorial p. 0/78 Example: QF _IDL y x z w

37 ICCAD 2009 Tutorial p. 1/78 Roadmap Theory Solvers Examples of Theory Solvers Combining Theory Solvers Extending Theory Solvers for SMT

38 ICCAD 2009 Tutorial p. 2/78 Combining Theory Solvers Theory solvers become much more useful if they can be used together. mux_sel = 0 mux_out = select(regfile,addr) mux_sel = 1 mux_out = ALU(alu0,alu1) For such formulas, we are interested in satisfiability with respect to a combination of theories. Fortunately, there exist methods for combining theory solvers. The standard technique for this is the Nelson-Oppen method [NO79, TH96].

39 ICCAD 2009 Tutorial p. /78 The Nelson-Oppen Method The Nelson-Oppen method is applicable when: 1. The theories have no shared symbols (other than equality). 2. The theories are stably-infinite. A theory T is stably-infinite if every T -satisfiable quantifier-free formula is satisfiable in an infinite model.. The formulas to be tested for satisfiability are quantifier-free Many theories fit these criteria, and extensions exist in some cases when they do not.

40 ICCAD 2009 Tutorial p. 4/78 The Nelson-Oppen Method Suppose that T 1 and T 2 are theories and that Sat 1 is a theory solver for T 1 -satisfiability and Sat 2 for T 1 -satisfiability. We wish to determine if φ is T 1 T 2 -satisfiable. 1. Convert φ to its separate form φ 1 φ Let S be the set of variables shared between φ 1 and φ 2.. For each arrangement of S: (a) Run Sat 1 on φ 1. (b) Run Sat 2 on φ 2.

41 ICCAD 2009 Tutorial p. 5/78 The Nelson-Oppen Method If there exists an arrangement such that both Sat 1 and Sat 2 succeed, then φ is T 1 T 2 -satisfiable. If no such arrangement exists, then φ is T 1 T 2 -unsatisfiable.

42 ICCAD 2009 Tutorial p. 6/78 Example Consider the following QF _U F LIA formula: φ = 1 x x 2 f(x) f(1) f(x) f(2).

43 ICCAD 2009 Tutorial p. 6/78 Example Consider the following QF _U F LIA formula: φ = 1 x x 2 f(x) f(1) f(x) f(2). We first convert φ to a separate form: φ UF = f(x) f(y) f(x) f(z) φ LIA = 1 x x 2 y = 1 z = 2 The shared variables are {x,y,z}. There are 5 possible arrangements based on equivalence classes of x, y, and z.

44 ICCAD 2009 Tutorial p. 7/78 Example φ UF = f(x) f(y) f(x) f(z) φ LIA = 1 x x 2 y = 1 z = 2 1. {x = y,x = z,y = z} 2. {x = y,x z,y z}. {x y,x = z,y z} 4. {x y,x z,y = z} 5. {x y,x z,y z}

45 ICCAD 2009 Tutorial p. 7/78 Example φ UF = f(x) f(y) f(x) f(z) φ LIA = 1 x x 2 y = 1 z = 2 1. {x = y,x = z,y = z}: inconsistent with φ UF. 2. {x = y,x z,y z}. {x y,x = z,y z} 4. {x y,x z,y = z} 5. {x y,x z,y z}

46 ICCAD 2009 Tutorial p. 7/78 Example φ UF = f(x) f(y) f(x) f(z) φ LIA = 1 x x 2 y = 1 z = 2 1. {x = y,x = z,y = z}: inconsistent with φ UF. 2. {x = y,x z,y z}: inconsistent with φ UF.. {x y,x = z,y z} 4. {x y,x z,y = z} 5. {x y,x z,y z}

47 ICCAD 2009 Tutorial p. 7/78 Example φ UF = f(x) f(y) f(x) f(z) φ LIA = 1 x x 2 y = 1 z = 2 1. {x = y,x = z,y = z}: inconsistent with φ UF. 2. {x = y,x z,y z}: inconsistent with φ UF.. {x y,x = z,y z}: inconsistent with φ UF. 4. {x y,x z,y = z} 5. {x y,x z,y z}

48 ICCAD 2009 Tutorial p. 7/78 Example φ UF = f(x) f(y) f(x) f(z) φ LIA = 1 x x 2 y = 1 z = 2 1. {x = y,x = z,y = z}: inconsistent with φ UF. 2. {x = y,x z,y z}: inconsistent with φ UF.. {x y,x = z,y z}: inconsistent with φ UF. 4. {x y,x z,y = z}: inconsistent with φ LIA. 5. {x y,x z,y z}

49 ICCAD 2009 Tutorial p. 7/78 Example φ UF = f(x) f(y) f(x) f(z) φ LIA = 1 x x 2 y = 1 z = 2 1. {x = y,x = z,y = z}: inconsistent with φ UF. 2. {x = y,x z,y z}: inconsistent with φ UF.. {x y,x = z,y z}: inconsistent with φ UF. 4. {x y,x z,y = z}: inconsistent with φ LIA. 5. {x y,x z,y z}: inconsistent with φ LIA.

50 ICCAD 2009 Tutorial p. 7/78 Example φ UF = f(x) f(y) f(x) f(z) φ LIA = 1 x x 2 y = 1 z = 2 1. {x = y,x = z,y = z}: inconsistent with φ UF. 2. {x = y,x z,y z}: inconsistent with φ UF.. {x y,x = z,y z}: inconsistent with φ UF. 4. {x y,x z,y = z}: inconsistent with φ LIA. 5. {x y,x z,y z}: inconsistent with φ LIA. Therefore, φ is unsatisfiable.

51 ICCAD 2009 Tutorial p. 8/78 Roadmap Theory Solvers Examples of Theory Solvers Combining Theory Solvers Extending Theory Solvers for SMT

52 ICCAD 2009 Tutorial p. 9/78 Desirable Characteristics of Theory Solvers Theory solvers must be able to determine whether a conjunction of literals is satisfiable. However, in order to integrate a theory solver into a modern SMT solver, it is helpful if the theory solvers can do more.

53 ICCAD 2009 Tutorial p. 40/78 Desirable Characteristics of Theory Solvers Some desirable characterstics of theory solvers include: Incrementality - easy to add new literals or backtrack to a previous state Layered/Lazy - able to detect simple inconsistencies quickly, able to detect difficult inconsistencies eventually Equality Propagating - If theory solvers can detect when two terms are equivalent, this greatly simplifies the search for a satisfying arrangement

54 ICCAD 2009 Tutorial p. 41/78 Desirable Characteristics of Theory Solvers Some desirable characterstics of theory solvers include: Model Generating - When reporting satisfiable, the theory solver also provides a concrete value for each variable or function symbol Proof Generating - When reporting unsatisfiable, the theory solver also provides a checkable proof Interpolant Generating - If φ ψ is unsatisfiable, find a formula α containing only symbols appearing in both φ and ψ such that: φ α is unsatisfiable α ψ is unsatisfiable

55 ICCAD 2009 Tutorial p. 42/78 Lazy SMT Theory solvers check the satisfiability of conjunctions of literals. What about more general Boolean structure? What is needed is a combination of Boolean reasoning and theory reasoning. The eager approach to SMT does this by encoding theory reasoning as a Boolean satisfiability problem. Here, I will focus on the lazy approach in which both a Boolean engine and a theory solver work together to solve the problem [dmrs02, BDS02a].

56 ICCAD 2009 Tutorial p. 4/78 Roadmap From SAT to SMT Abstract DPLL Abstract DPLL Modulo Theories Key Optimizations Quantifier Instantiation

57 ICCAD 2009 Tutorial p. 44/78 Abstract DPLL We start with an abstract description of DPLL, the algorithm used by most SAT solvers [NOT06].

58 ICCAD 2009 Tutorial p. 44/78 Abstract DPLL We start with an abstract description of DPLL, the algorithm used by most SAT solvers [NOT06]. Abstract DPLL uses states and transitions to model the progress of the algorithm.

59 ICCAD 2009 Tutorial p. 44/78 Abstract DPLL We start with an abstract description of DPLL, the algorithm used by most SAT solvers [NOT06]. Abstract DPLL uses states and transitions to model the progress of the algorithm. Most states are of the form M F, where M is a sequence of annotated literals denoting a partial truth assignment, and F is the CNF formula being checked, represented as a set of clauses.

60 ICCAD 2009 Tutorial p. 44/78 Abstract DPLL We start with an abstract description of DPLL, the algorithm used by most SAT solvers [NOT06]. Abstract DPLL uses states and transitions to model the progress of the algorithm. Most states are of the form M F, where M is a sequence of annotated literals denoting a partial truth assignment, and F is the CNF formula being checked, represented as a set of clauses. The initial state is F, where F is to be checked for satisfiability.

61 ICCAD 2009 Tutorial p. 44/78 Abstract DPLL We start with an abstract description of DPLL, the algorithm used by most SAT solvers [NOT06]. Abstract DPLL uses states and transitions to model the progress of the algorithm. Most states are of the form M F, where M is a sequence of annotated literals denoting a partial truth assignment, and F is the CNF formula being checked, represented as a set of clauses. The initial state is F, where F is to be checked for satisfiability. Transitions between states are defined by a set of conditional transition rules.

62 ICCAD 2009 Tutorial p. 45/78 Abstract DPLL The final state is either: a special fail state: fail, if F is unsatisfiable, or M G, where G is a CNF formula equisatisfiable with the original formula F, with M = G We write M = C to mean that C is satisfied whenever M is satisfied. Or in other words, C is a propositional consequence of the conjunction of the literals in M.

63 ICCAD 2009 Tutorial p. 46/78 Abstract DPLL Rules UnitProp : M F, C l = M l F, C l if PureLiteral : M F = M l F if Decide : M F = M l d F if Backtrack : Fail : M l d N F, C = M l F, C if M F, C = fail if 8 < : 8 >< >: 8 < : 8 < : 8 < : M = C l is undefined in M l occurs in some clause of F l occurs in no clause of F l is undefined in M l or l occurs in a clause of F l is undefined in M M l d N = C N contains no decision literals M = C M contains no decision literals

64 ICCAD 2009 Tutorial p. 47/78 Example 1 2, 1 2, 2, 2, 1 4 = (PureLiteral) 4 1 d 2

65 ICCAD 2009 Tutorial p. 48/78 Example 1 2, 1 2, 2, 2, 1 4 = (PureLiteral) 4 1 2, 1 2, 2, 2, d 2

66 ICCAD 2009 Tutorial p. 49/78 Example 1 2, 1 2, 2, 2, 1 4 = (PureLiteral) 4 1 2, 1 2, 2, 2, 1 4 = (Decide) 4 1 d 1 2, 1 2, 2, 2, d 2

67 ICCAD 2009 Tutorial p. 50/78 Example 1 2, 1 2, 2, 2, 1 4 = (PureLiteral) 4 1 2, 1 2, 2, 2, 1 4 = (Decide) 4 1 d 1 2, 1 2, 2, 2, 1 4 = (UnitProp) 4 1 d 2 1 2, 1 2, 2, 2, d 2

68 ICCAD 2009 Tutorial p. 51/78 Example 1 2, 1 2, 2, 2, 1 4 = (PureLiteral) 4 1 2, 1 2, 2, 2, 1 4 = (Decide) 4 1 d 1 2, 1 2, 2, 2, 1 4 = (UnitProp) 4 1 d 2 1 2, 1 2, 2, 2, 1 4 = (UnitProp) 4 1 d 2 1 2, 1 2, 2, 2, 1 4

69 ICCAD 2009 Tutorial p. 52/78 Example 1 2, 1 2, 2, 2, 1 4 = (PureLiteral) 4 1 2, 1 2, 2, 2, 1 4 = (Decide) 4 1 d 1 2, 1 2, 2, 2, 1 4 = (UnitProp) 4 1 d 2 1 2, 1 2, 2, 2, 1 4 = (UnitProp) 4 1 d 2 1 2, 1 2, 2, 2, 1 4 = (Backtrack) , 1 2, 2, 2, 1 4

70 ICCAD 2009 Tutorial p. 5/78 Example 1 2, 1 2, 2, 2, 1 4 = (PureLiteral) 4 1 2, 1 2, 2, 2, 1 4 = (Decide) 4 1 d 1 2, 1 2, 2, 2, 1 4 = (UnitProp) 4 1 d 2 1 2, 1 2, 2, 2, 1 4 = (UnitProp) 4 1 d 2 1 2, 1 2, 2, 2, 1 4 = (Backtrack) , 1 2, 2, 2, 1 4 = (UnitProp) , 1 2, 2, 2, 1 4

71 ICCAD 2009 Tutorial p. 54/78 Example 1 2, 1 2, 2, 2, 1 4 = (PureLiteral) 4 1 2, 1 2, 2, 2, 1 4 = (Decide) 4 1 d 1 2, 1 2, 2, 2, 1 4 = (UnitProp) 4 1 d 2 1 2, 1 2, 2, 2, 1 4 = (UnitProp) 4 1 d 2 1 2, 1 2, 2, 2, 1 4 = (Backtrack) , 1 2, 2, 2, 1 4 = (UnitProp) , 1 2, 2, 2, 1 4 = (Fail) fail

72 ICCAD 2009 Tutorial p. 54/78 Example 1 2, 1 2, 2, 2, 1 4 = (PureLiteral) 4 1 2, 1 2, 2, 2, 1 4 = (Decide) 4 1 d 1 2, 1 2, 2, 2, 1 4 = (UnitProp) 4 1 d 2 1 2, 1 2, 2, 2, 1 4 = (UnitProp) 4 1 d 2 1 2, 1 2, 2, 2, 1 4 = (Backtrack) , 1 2, 2, 2, 1 4 = (UnitProp) , 1 2, 2, 2, 1 4 = (Fail) fail Result: Unsatisfiable

73 ICCAD 2009 Tutorial p. 55/78 Additional Abstract DPLL Rules Backjump : M l d N F, C = M l F, C if Learn : M F = M F, C if Forget : M F, C = M F if 8 >< >: 8 < : n M l d N = C, and there is some clause C l such that: F, C = C l and M = C, l is undefined in M, and l or l occurs in F or in M l d N all atoms of C occur in F F = C F = C Restart : M F = F

74 ICCAD 2009 Tutorial p. 56/78 Roadmap From SAT to SMT Abstract DPLL Abstract DPLL Modulo Theories Key Optimizations Quantifier Instantiation

75 ICCAD 2009 Tutorial p. 57/78 Abstract DPLL Modulo Theories The Abstract DPLL Modulo Theories framework extends the Abstract DPLL framework to include theory reasoning [NOT06]. Assume we have a theory T and a solver Sat T that can check satisfiability of conjunctions of literals in T. Suppose we want to check the T -satisfiability of an arbitrary (quantifier-free) formula φ. We start by converting φ to CNF. We can then use the Abstract DPLL rules, allowing any first-order literal where before we had propositional literals.

76 ICCAD 2009 Tutorial p. 57/78 Abstract DPLL Modulo Theories The Abstract DPLL Modulo Theories framework extends the Abstract DPLL framework to include theory reasoning [NOT06]. Assume we have a theory T and a solver Sat T that can check satisfiability of conjunctions of literals in T. Suppose we want to check the T -satisfiability of an arbitrary (quantifier-free) formula φ. We start by converting φ to CNF. What other changes do we need to make to Abstract DPLL so it will work for SMT?

77 ICCAD 2009 Tutorial p. 58/78 Abstract DPLL Modulo Theories The first change is to the definition of a final state. A final state is now: the special fail state: fail, or M F, where M = F, and Sat T (M) reports satisfiable.

78 ICCAD 2009 Tutorial p. 58/78 Abstract DPLL Modulo Theories The first change is to the definition of a final state. A final state is now: the special fail state: fail, or M F, where M = F, and Sat T (M) reports satisfiable. What happens if we reach a state in which: M F, M = F, and Sat T (M) reports unsatisfiable? (call this a pseudo-final state)

79 ICCAD 2009 Tutorial p. 58/78 Abstract DPLL Modulo Theories The first change is to the definition of a final state. A final state is now: the special fail state: fail, or M F, where M = F, and Sat T (M) reports satisfiable. What happens if we reach a state in which: M F, M = F, and Sat T (M) reports unsatisfiable? (call this a pseudo-final state) We need to backtrack. The DPLL rules will take care of this automatically if we add a clause C such that M = C.

80 ICCAD 2009 Tutorial p. 58/78 Abstract DPLL Modulo Theories The first change is to the definition of a final state. A final state is now: the special fail state: fail, or M F, where M = F, and Sat T (M) reports satisfiable. What happens if we reach a state in which: M F, M = F, and Sat T (M) reports unsatisfiable? (call this a pseudo-final state) We need to backtrack. The DPLL rules will take care of this automatically if we add a clause C such that M = C. What clause should we add?

81 ICCAD 2009 Tutorial p. 58/78 Abstract DPLL Modulo Theories The first change is to the definition of a final state. A final state is now: the special fail state: fail, or M F, where M = F, and Sat T (M) reports satisfiable. What happens if we reach a state in which: M F, M = F, and Sat T (M) reports unsatisfiable? (call this a pseudo-final state) We need to backtrack. The DPLL rules will take care of this automatically if we add a clause C such that M = C. What clause should we add? How about M?

82 ICCAD 2009 Tutorial p. 59/78 Abstract DPLL Modulo Theories The justification for adding M is that = T M. Note that Γ = T φ denotes that φ holds whenever both Γ and T are satisfied. We can generalize this to allow any clause C to be added as long as F = T C. The following modified Learn rule allows this (we also modify the Forget rule in an analagous way): Theory Learn : M F = M F, C if Theory Forget : M F, C = M F if 8 < : n all atoms of C occur in F F = T C F = T C

83 ICCAD 2009 Tutorial p. 60/78 Abstract DPLL Modulo Theories The resulting set of rules is almost enough to correctly implement an SMT solver. We need one more change.

84 ICCAD 2009 Tutorial p. 60/78 Abstract DPLL Modulo Theories The resulting set of rules is almost enough to correctly implement an SMT solver. We need one more change. A somewhat surprising observation is that the pure literal rule has to be abandoned. Why?

85 ICCAD 2009 Tutorial p. 60/78 Abstract DPLL Modulo Theories The resulting set of rules is almost enough to correctly implement an SMT solver. We need one more change. A somewhat surprising observation is that the pure literal rule has to be abandoned. Why? Propositional literals are independent of each other, but first order literals may not be.

86 ICCAD 2009 Tutorial p. 60/78 Abstract DPLL Modulo Theories The resulting set of rules is almost enough to correctly implement an SMT solver. We need one more change. A somewhat surprising observation is that the pure literal rule has to be abandoned. Why? Propositional literals are independent of each other, but first order literals may not be. The remaining rules form a sound and complete procedure for SMT.

87 ICCAD 2009 Tutorial p. 61/78 Example of Lazy SMT g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4

88 ICCAD 2009 Tutorial p. 61/78 Example of Lazy SMT g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4

89 ICCAD 2009 Tutorial p. 61/78 Example of Lazy SMT g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4

90 ICCAD 2009 Tutorial p. 61/78 Example of Lazy SMT g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4

91 ICCAD 2009 Tutorial p. 61/78 Example of Lazy SMT g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, 1 2 4

92 ICCAD 2009 Tutorial p. 61/78 Example of Lazy SMT g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, = (Backjump) 1 2 d 4 1, 2, 4, 1 2 4

93 ICCAD 2009 Tutorial p. 61/78 Example of Lazy SMT g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, = (Backjump) 1 2 d 4 1, 2, 4, = (UnitProp) 1 2 d 4 1, 2, 4, 1 2 4

94 ICCAD 2009 Tutorial p. 61/78 Example of Lazy SMT g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, = (Backjump) 1 2 d 4 1, 2, 4, = (UnitProp) 1 2 d 4 1, 2, 4, = (Theory Learn) 1 2 d 4 1, 2, 4, 1 2 4, 1 2 4

95 ICCAD 2009 Tutorial p. 61/78 Example of Lazy SMT g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, = (Backjump) 1 2 d 4 1, 2, 4, = (UnitProp) 1 2 d 4 1, 2, 4, = (Theory Learn) 1 2 d 4 1, 2, 4, 1 2 4, = (Backjump) 1 2 1, 2, 4, 1 2 4, 1 2 4

96 ICCAD 2009 Tutorial p. 61/78 Example of Lazy SMT g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, = (Backjump) 1 2 d 4 1, 2, 4, = (UnitProp) 1 2 d 4 1, 2, 4, = (Theory Learn) 1 2 d 4 1, 2, 4, 1 2 4, = (Backjump) 1 2 1, 2, 4, 1 2 4, = (UnitProp) , 2, 4, 1 2 4, 1 2 4

97 ICCAD 2009 Tutorial p. 61/78 Example of Lazy SMT g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, = (Backjump) 1 2 d 4 1, 2, 4, = (UnitProp) 1 2 d 4 1, 2, 4, = (Theory Learn) 1 2 d 4 1, 2, 4, 1 2 4, = (Backjump) 1 2 1, 2, 4, 1 2 4, = (UnitProp) , 2, 4, 1 2 4, = (Theory Learn) , 2, 4, 1 2 4, 1 2 4, 1 2 4

98 ICCAD 2009 Tutorial p. 61/78 Example of Lazy SMT g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, = (Backjump) 1 2 d 4 1, 2, 4, = (UnitProp) 1 2 d 4 1, 2, 4, = (Theory Learn) 1 2 d 4 1, 2, 4, 1 2 4, = (Backjump) 1 2 1, 2, 4, 1 2 4, = (UnitProp) , 2, 4, 1 2 4, = (Theory Learn) , 2, 4, 1 2 4, 1 2 4, = (Fail) fail

99 ICCAD 2009 Tutorial p. 62/78 Roadmap From SAT to SMT Abstract DPLL Abstract DPLL Modulo Theories Key Optimizations Quantifier Instantiation

100 ICCAD 2009 Tutorial p. 6/78 Key Optimizations We will mention three ways to improve the algorithm. Minimizing learned clauses Early conflict detection Theory propagation

101 ICCAD 2009 Tutorial p. 64/78 Minimizing Learned Clauses The main problem with the approach as described so far is that learning M in every pseudo-final state is very inefficient. To see why, recall that a pseudo-final state is: M F, where M = F, and Sat T (M) = False Note that M is a sequence of literals and could be quite large. However, it is often the case that a small subset of M is sufficient to cause an inconsistency in T.

102 ICCAD 2009 Tutorial p. 65/78 Minimizing Learned Clauses To solve the problem, whenever Sat T (M) is called, an effort must be made to find the smallest possible subset of M which is inconsistent. There are several methods: Brute-force minimization (typically too slow) Traverse a proof tree for each inconsistency (similar to traversing an implication graph in SAT solvers) Ad hoc per-theory techniques

103 ICCAD 2009 Tutorial p. 66/78 Example with Minimized Learned Clauses g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4

104 ICCAD 2009 Tutorial p. 66/78 Example with Minimized Learned Clauses g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4

105 ICCAD 2009 Tutorial p. 66/78 Example with Minimized Learned Clauses g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4

106 ICCAD 2009 Tutorial p. 66/78 Example with Minimized Learned Clauses g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4

107 ICCAD 2009 Tutorial p. 66/78 Example with Minimized Learned Clauses g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, 1 2

108 ICCAD 2009 Tutorial p. 66/78 Example with Minimized Learned Clauses g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, 1 2 = (Backjump) 1 2 1, 2, 4, 1 2

109 ICCAD 2009 Tutorial p. 66/78 Example with Minimized Learned Clauses g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, 1 2 = (Backjump) 1 2 1, 2, 4, 1 2 = (UnitProp) , 2, 4, 1 2

110 ICCAD 2009 Tutorial p. 66/78 Example with Minimized Learned Clauses g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, 1 2 = (Backjump) 1 2 1, 2, 4, 1 2 = (UnitProp) , 2, 4, 1 2 = (Theory Learn) , 2, 4, 1 2, 1 4

111 ICCAD 2009 Tutorial p. 66/78 Example with Minimized Learned Clauses g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Decide) 1 2 d 4 d 1, 2, 4 = (Theory Learn) 1 2 d 4 d 1, 2, 4, 1 2 = (Backjump) 1 2 1, 2, 4, 1 2 = (UnitProp) , 2, 4, 1 2 = (Theory Learn) , 2, 4, 1 2, 1 4 = (Fail) fail

112 ICCAD 2009 Tutorial p. 67/78 Early Conflict Detection So far, we have indicated that we will check M for T -satisfiability only when a pseudo-final state is reached. In contrast, we could check M for T -satisfiability every time M changes, possibly resulting in earlier detection of conflicts. Experimental results show that this approach is significantly better. It requires Sat T to be online: able quickly to determine the consistency of incrementally more literals or to backtrack to a previous state. It also requires that the SAT solver be instrumented to call Sat T every time a variable is assigned a value.

113 ICCAD 2009 Tutorial p. 68/78 Example with Early Conflict Detection g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4

114 ICCAD 2009 Tutorial p. 68/78 Example with Early Conflict Detection g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4

115 ICCAD 2009 Tutorial p. 68/78 Example with Early Conflict Detection g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4

116 ICCAD 2009 Tutorial p. 68/78 Example with Early Conflict Detection g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Theory Learn) 1 2 d 1, 2, 4, 1 2

117 ICCAD 2009 Tutorial p. 68/78 Example with Early Conflict Detection g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Theory Learn) 1 2 d 1, 2, 4, 1 2 = (Backjump) 1 2 1, 2, 4, 1 2

118 ICCAD 2009 Tutorial p. 68/78 Example with Early Conflict Detection g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Theory Learn) 1 2 d 1, 2, 4, 1 2 = (Backjump) 1 2 1, 2, 4, 1 2 = (UnitProp) , 2, 4, 1 2

119 ICCAD 2009 Tutorial p. 68/78 Example with Early Conflict Detection g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Theory Learn) 1 2 d 1, 2, 4, 1 2 = (Backjump) 1 2 1, 2, 4, 1 2 = (UnitProp) , 2, 4, 1 2 = (Theory Learn) , 2, 4, 1 2, 1 4

120 ICCAD 2009 Tutorial p. 68/78 Example with Early Conflict Detection g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Decide) 1 2 d 1, 2, 4 = (Theory Learn) 1 2 d 1, 2, 4, 1 2 = (Backjump) 1 2 1, 2, 4, 1 2 = (UnitProp) , 2, 4, 1 2 = (Theory Learn) , 2, 4, 1 2, 1 4 = (Fail) fail

121 ICCAD 2009 Tutorial p. 69/78 Theory Propagation A final improvement is to add the following rule: Theory Propagate : M F = M l F if 8 >< >: M = T l l or l occurs in F l is undefined in M This rule allows Sat T to inform the SAT solver if it is able to deduce that an unassigned literal is entailed by the current set of literals (M). Experimental results show that this can also be very helpful in practice. Techniques for implementing theory propagation vary by solver and by theory.

122 ICCAD 2009 Tutorial p. 70/78 Example with Theory Propagation g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4

123 ICCAD 2009 Tutorial p. 70/78 Example with Theory Propagation g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4

124 ICCAD 2009 Tutorial p. 70/78 Example with Theory Propagation g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Theory Propagate) 1 2 1, 2, 4

125 ICCAD 2009 Tutorial p. 70/78 Example with Theory Propagation g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Theory Propagate) 1 2 1, 2, 4 = (UnitProp) 1 2 1, 2, 4

126 ICCAD 2009 Tutorial p. 70/78 Example with Theory Propagation g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Theory Propagate) 1 2 1, 2, 4 = (UnitProp) 1 2 1, 2, 4 = (Theory Propagate) , 2, 4

127 ICCAD 2009 Tutorial p. 70/78 Example with Theory Propagation g(a) = c 1 f(g(a)) f(c) 2 g(a) = d c d 4 g(a) d 1, 2, 4 = (UnitProp) 1 1, 2, 4 = (Theory Propagate) 1 2 1, 2, 4 = (UnitProp) 1 2 1, 2, 4 = (Theory Propagate) , 2, 4 = (Fail) fail

128 ICCAD 2009 Tutorial p. 71/78 Roadmap From SAT to SMT Abstract DPLL Abstract DPLL Modulo Theories Key Optimizations Quantifier Instantiation

129 ICCAD 2009 Tutorial p. 72/78 Quantifiers The Abstract DPLL Modulo Theories framework can also be extended to include rules for quantifier instantiation [GBT07]. First, we extend the notion of literal to that of an abstract literal which may include quantified formulas in place of atomic formulas. Add two additional rules: Inst_ : M F = M F, ( x. P P[x/sk]) if Inst_ : M F = M F, ( x. P P[x/t]) if 8 < : 8 < : x P is an abstract literal in M sk is a fresh constant. x P is an abstract literal in M t is a ground term.

130 ICCAD 2009 Tutorial p. 7/78 An Example Suppose a and b are constant symbols and f is an uninterpreted function symbol. We show how to prove the validity of the following formula: (0 b ( x. 0 x f(x) = a)) f(b) = a We first negate the formula and put it into abstract CNF. The result is three unit clauses: (0 b) ( x. ( 0 x f(x) = a)) ( f(b) = a)

131 ICCAD 2009 Tutorial p. 74/78 An Example Let l 1,l 2,l denote the three abstract literals in the above clauses. Then the following is a derivation in the extended framework: (l 1 )(l 2 )(l ) = (UnitProp) l 1,l 2,l (l 1 )(l 2 )(l ) = (Inst_ ) l 1,l 2,l (l 1 )(l 2 )(l )( (0 b) f(b) = a) = (Fail) fail The last transition is possible because M falsifies the last clause in F and contains no decisions (case-splits). As a result, we may conclude that the original set of clauses is unsatisfiable, which implies that the original formula is valid.

132 ICCAD 2009 Tutorial p. 75/78 Quantifiers The simple technique of quantifier instantiation is remarkably effective on verification benchmarks. The main difficulty is coming up with the right terms to instantiate. Matching techniques pioneered by Simplify [DNS0] have recently been adopted and improved by several modern SMT solvers [FJS04, BdM07, GBT07].

133 ICCAD 2009 Tutorial p. 76/78 References [BdM07] [BDS02a] [CG96] [dmrs02] [DNS0] Nikolaj Bjørner and Leonardo de Moura. Efficient E-matching for SMT solvers. In Frank Pfenning, editor, Proceedings of the 21 st International Conference on Automated Deduction (CADE 07), volume 460 of Lecture Notes in Artificial Intelligence, pages Springer-Verlag, July 2007 Clark W. Barrett, David L. Dill, and Aaron Stump. Checking satisfiability of first-order formulas by incremental translation to SAT. In Ed Brinksma and Kim Guldstrand Larsen, editors, Proceedings of the 14 th International Conference on Computer Aided Verification (CAV 02), volume 2404 of Lecture Notes in Computer Science, pages Springer-Verlag, July Copenhagen, Denmark B. V. Cherkassy and A. V. Goldberg. Negative-cycle detection algorithms. In European Symposium on Algorithms, pages 49 6, 1996 L. de Moura, H. Rueß, and M. Sorea. Lazy Theorem Proving for Bounded Model Checking over Infinite Domains. In Proc. of the 18th International Conference on Automated Deduction, volume 292 of LNCS, pages Springer, July 2002 David Detlefs, Greg Nelson, and James B. Saxe. Simplify: A theorem prover for program checking. Technical Report HPL , HP Laboratories Palo Alto, 200

134 ICCAD 2009 Tutorial p. 77/78 References [DST80] [FJS04] [GBT07] [NO79] [NO80] P. J. Downey, R. Sethi, and R. E. Tarjan. Variations on the common subexpression problem. Journal of the Association for Computing Machinery, 27(4): , October 1980 Cormac Flanagan, Rajeev Joshi, and James B. Saxe. An explicating theorem prover for quantified formulas. Technical Report HPL , HP Laboratories Palo Alto, 2004 Yeting Ge, Clark Barrett, and Cesare Tinelli. Solving quantified verification conditions using satisfiability modulo theories. In Frank Pfenning, editor, Proceedings of the 21 st International Conference on Automated Deduction (CADE 07), volume 460 of Lecture Notes in Artificial Intelligence, pages Springer-Verlag, July Bremen, Germany Greg Nelson and Derek C. Oppen. Simplification by cooperating decision procedures. ACM Trans. on Programming Languages and Systems, 1(2): , October 1979 Greg Nelson and Derek C. Oppen. Fast decision procedures based on congruence closure. Journal of the ACM, 27(2):56 64, 1980

135 ICCAD 2009 Tutorial p. 78/78 References [NO05] [NOT06] [TH96] Robert Nieuwenhuis and Albert Oliveras. DPLL(T) with exhaustive theory propagation and its application to difference logic. In Kousha Etessami and Sriram K. Rajamani, editors, Proceedings of the 17 th International Conference on Computer Aided Verification (CAV 05), volume 576 of Lecture Notes in Computer Science, pages Springer, July 2005 Robert Nieuwenhuis, Albert Oliveras, and Cesare Tinelli. Solving SAT and SAT Modulo Theories: from an Abstract Davis-Putnam-Logemann-Loveland Procedure to DPLL(T). Journal of the ACM, 5(6):97 977, November 2006 C. Tinelli and M. Harandi. A new correctness proof of the nelson-oppen combination procedure. In F. Baader and K. Schulz, editors, 1st International Workshop on Frontiers of Combining Systems (FroCoS 96), volume of Applied Logic Series. Kluwer Academic Publishers, 1996

WHAT IS AN SMT SOLVER? Jaeheon Yi - April 17, 2008

WHAT IS AN SMT SOLVER? Jaeheon Yi - April 17, 2008 WHAT IS AN SMT SOLVER? Jaeheon Yi - April 17, 2008 WHAT I LL TALK ABOUT Propositional Logic Terminology, Satisfiability, Decision Procedure First-Order Logic Terminology, Background Theories Satisfiability

More information

Tutorial 1: Modern SMT Solvers and Verification

Tutorial 1: Modern SMT Solvers and Verification University of Illinois at Urbana-Champaign Tutorial 1: Modern SMT Solvers and Verification Sayan Mitra Electrical & Computer Engineering Coordinated Science Laboratory University of Illinois at Urbana

More information

Solving SAT Modulo Theories

Solving SAT Modulo Theories Solving SAT Modulo Theories R. Nieuwenhuis, A. Oliveras, and C.Tinelli. Solving SAT and SAT Modulo Theories: from an Abstract Davis-Putnam-Logemann-Loveland Procedure to DPLL(T) Mooly Sagiv Motivation

More information

Solving Quantified Verification Conditions using Satisfiability Modulo Theories

Solving Quantified Verification Conditions using Satisfiability Modulo Theories Solving Quantified Verification Conditions using Satisfiability Modulo Theories Yeting Ge, Clark Barrett, Cesare Tinelli Solving Quantified Verification Conditions using Satisfiability Modulo Theories

More information

Abstract DPLL and Abstract DPLL Modulo Theories

Abstract DPLL and Abstract DPLL Modulo Theories Abstract DPLL and Abstract DPLL Modulo Theories Robert Nieuwenhuis, Albert Oliveras, and Cesare Tinelli Abstract. We introduce Abstract DPLL, a general and simple abstract rule-based formulation of the

More information

Satisfiability Modulo Theories

Satisfiability Modulo Theories Satisfiability Modulo Theories Summer School on Formal Methods Menlo College, 2011 Bruno Dutertre and Leonardo de Moura bruno@csl.sri.com, leonardo@microsoft.com SRI International, Microsoft Research SAT/SMT

More information

Topics in Model-Based Reasoning

Topics in Model-Based Reasoning Towards Integration of Proving and Solving Dipartimento di Informatica Università degli Studi di Verona Verona, Italy March, 2014 Automated reasoning Artificial Intelligence Automated Reasoning Computational

More information

Foundations of Lazy SMT and DPLL(T)

Foundations of Lazy SMT and DPLL(T) Foundations of Lazy SMT and DPLL(T) Cesare Tinelli The University of Iowa Foundations of Lazy SMT and DPLL(T) p.1/86 Acknowledgments: Many thanks to Albert Oliveras for contributing some of the material

More information

SAT Solvers: Theory and Practice

SAT Solvers: Theory and Practice Summer School on Verification Technology, Systems & Applications, September 17, 2008 p. 1/98 SAT Solvers: Theory and Practice Clark Barrett barrett@cs.nyu.edu New York University Summer School on Verification

More information

Satisfiability Modulo Theories

Satisfiability Modulo Theories Satisfiability Modulo Theories Tjark Weber webertj@in.tum.de Oberseminar Statische Analyse November 11, 2004 Satisfiability Modulo Theories p.1/16 Goal To decide the satisfiability of formulas with respect

More information

Satisfiability Modulo Theories (SMT)

Satisfiability Modulo Theories (SMT) Satisfiability Modulo Theories (SMT) Sylvain Conchon Cours 7 / 9 avril 2014 1 Road map The SMT problem Modern efficient SAT solvers CDCL(T) Examples of decision procedures: equality (CC) and difference

More information

Strategies for Combining Decision Procedures

Strategies for Combining Decision Procedures Strategies for Combining Decision Procedures Sylvain Conchon 1 and Sava Krstić 2 1 École des Mines de Nantes 2 OGI School of Science & Engineering at Oregon Health & Sciences University Abstract. Implementing

More information

Combining Decision Procedures

Combining Decision Procedures Combining Decision Procedures Ashish Tiwari tiwari@csl.sri.com http://www.csl.sri.com/. Computer Science Laboratory SRI International 333 Ravenswood Menlo Park, CA 94025 Combining Decision Procedures (p.1

More information

NP-completeness of small conflict set generation for congruence closure

NP-completeness of small conflict set generation for congruence closure NP-completeness of small conflict set generation for congruence closure Andreas Fellner 1,2, Pascal Fontaine 3, Georg Hofferek 4 and Bruno Woltzenlogel Paleo 2,5 1 IST-Austria, Klosterneuburg (Austria)

More information

Theory Combination. Clark Barrett. New York University. CS357, Stanford University, Nov 2, p. 1/24

Theory Combination. Clark Barrett. New York University. CS357, Stanford University, Nov 2, p. 1/24 CS357, Stanford University, Nov 2, 2015. p. 1/24 Theory Combination Clark Barrett barrett@cs.nyu.edu New York University CS357, Stanford University, Nov 2, 2015. p. 2/24 Combining Theory Solvers Given

More information

Solving SAT and SAT Modulo Theories: From an Abstract Davis Putnam Logemann Loveland Procedure to DPLL(T)

Solving SAT and SAT Modulo Theories: From an Abstract Davis Putnam Logemann Loveland Procedure to DPLL(T) Solving SAT and SAT Modulo Theories: From an Abstract Davis Putnam Logemann Loveland Procedure to DPLL(T) ROBERT NIEUWENHUIS AND ALBERT OLIVERAS Technical University of Catalonia, Barcelona, Spain AND

More information

Efficient E-matching for SMT Solvers. Leonardo de Moura, Nikolaj Bjørner Microsoft Research, Redmond

Efficient E-matching for SMT Solvers. Leonardo de Moura, Nikolaj Bjørner Microsoft Research, Redmond Efficient E-matching for SMT Solvers Leonardo de Moura, Nikolaj Bjørner Microsoft Research, Redmond The Z3tting Z3 is an inference engine tailored towards formulas arising from program verification tools

More information

Constraint Solving for Finite Model Finding in SMT Solvers

Constraint Solving for Finite Model Finding in SMT Solvers myjournal manuscript No. (will be inserted by the editor) Constraint Solving for Finite Model Finding in SMT Solvers Andrew Reynolds Cesare Tinelli Clark Barrett Received: date / Accepted: date Abstract

More information

Lecture 2 Propositional Logic & SAT

Lecture 2 Propositional Logic & SAT CS 5110/6110 Rigorous System Design Spring 2017 Jan-17 Lecture 2 Propositional Logic & SAT Zvonimir Rakamarić University of Utah Announcements Homework 1 will be posted soon Propositional logic: Chapter

More information

Quantifiers. Leonardo de Moura Microsoft Research

Quantifiers. Leonardo de Moura Microsoft Research Quantifiers Leonardo de Moura Microsoft Research Satisfiability a > b + 2, a = 2c + 10, c + b 1000 SAT a = 0, b = 3, c = 5 Model 0 > 3 + 2, 0 = 2 5 + 10, 5 + ( 3) 1000 Quantifiers x y x > 0 f x, y = 0

More information

Rewriting for Satisfiability Modulo Theories

Rewriting for Satisfiability Modulo Theories 1 Dipartimento di Informatica Università degli Studi di Verona Verona, Italy July 10, 2010 1 Joint work with Chris Lynch (Department of Mathematics and Computer Science, Clarkson University, NY, USA) and

More information

Finite model finding in satisfiability modulo theories

Finite model finding in satisfiability modulo theories University of Iowa Iowa Research Online Theses and Dissertations Fall 2013 Finite model finding in satisfiability modulo theories Andrew Joseph Reynolds University of Iowa Copyright 2013 Andrew J. Reynolds

More information

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

Solvers for the Problem of Boolean Satisfiability (SAT) Will Klieber Aug 31, 2011 Solvers for the Problem of Boolean Satisfiability (SAT) Will Klieber 15-414 Aug 31, 2011 Why study SAT solvers? Many problems reduce to SAT. Formal verification CAD, VLSI Optimization AI, planning, automated

More information

Satisfiability Modulo Theories

Satisfiability Modulo Theories Satisfiability Modulo Theories Bruno Dutertre SRI International Leonardo de Moura Microsoft Research Satisfiability a > b + 2, a = 2c + 10, c + b 1000 SAT a = 0, b = 3, c = 5 Model 0 > 3 + 2, 0 = 2 5 +

More information

Leonardo de Moura Microsoft Research

Leonardo de Moura Microsoft Research Leonardo de Moura Microsoft Research Is formula F satisfiable modulo theory T? SMT solvers have specialized algorithms for T b + 2 = c and f(read(write(a,b,3), c-2)) f(c-b+1) b + 2 = c and f(read(write(a,b,3),

More information

CS156: The Calculus of Computation

CS156: The Calculus of Computation CS156: The Calculus of Computation Zohar Manna Winter 2010 It is reasonable to hope that the relationship between computation and mathematical logic will be as fruitful in the next century as that between

More information

Finding Conflicting Instances of Quantified Formulas in SMT

Finding Conflicting Instances of Quantified Formulas in SMT Finding Conflicting Instances of Quantified Formulas in SMT Andrew Reynolds The University of Iowa Cesare Tinelli The University of Iowa Leonardo de Moura Microsoft Research Abstract In the past decade,

More information

An Introduction to SAT Solving

An Introduction to SAT Solving An Introduction to SAT Solving Applied Logic for Computer Science UWO December 3, 2017 Applied Logic for Computer Science An Introduction to SAT Solving UWO December 3, 2017 1 / 46 Plan 1 The Boolean satisfiability

More information

COMP219: Artificial Intelligence. Lecture 20: Propositional Reasoning

COMP219: Artificial Intelligence. Lecture 20: Propositional Reasoning COMP219: Artificial Intelligence Lecture 20: Propositional Reasoning 1 Overview Last time Logic for KR in general; Propositional Logic; Natural Deduction Today Entailment, satisfiability and validity Normal

More information

Round 9: Satisfiability Modulo Theories, Part II

Round 9: Satisfiability Modulo Theories, Part II Round 9: Satisfiability Modulo Theories, Part II Tommi Junttila Aalto University School of Science Department of Computer Science CS-E322 Declarative Programming Spring 218 Tommi Junttila (Aalto University)

More information

Classical Propositional Logic

Classical Propositional Logic Classical Propositional Logic Peter Baumgartner http://users.cecs.anu.edu.au/~baumgart/ Ph: 02 6218 3717 Data61/CSIRO and ANU July 2017 1 / 71 Classical Logic and Reasoning Problems A 1 : Socrates is a

More information

Model-based Theory Combination

Model-based Theory Combination Electronic Notes in Theoretical Computer Science 198 (2008) 37 49 www.elsevier.com/locate/entcs Model-based Theory Combination Leonardo de Moura 1 Nikolaj Bjørner 2 Microsoft Research, One Microsoft Way,

More information

A two-tier technique for supporting quantifiers in a lazily proof-explicating theorem prover

A two-tier technique for supporting quantifiers in a lazily proof-explicating theorem prover A two-tier technique for supporting quantifiers in a lazily proof-explicating theorem prover K. Rustan M. Leino 0, Madan Musuvathi 0, and Xinming Ou 1 0 Microsoft Research, Redmond, WA, USA {leino,madanm@microsoft.com

More information

Data structures with arithmetic constraints: non-disjoint combinations

Data structures with arithmetic constraints: non-disjoint combinations Data structures with arithmetic constraints: non-disjoint combinations E. Nicolini, C. Ringeissen, and M. Rusinowitch LORIA & INRIA-Lorraine ADDCT-UNIF 09 E. Nicolini et al. (LORIA & INRIA-Lorraine) Data

More information

Satisfiability Modulo Theories

Satisfiability Modulo Theories Satisfiability Modulo Theories Summer School on Formal Methods Menlo College, 2011 Bruno Dutertre and Leonardo de Moura bruno@csl.sri.com, leonardo@microsoft.com SRI International, Microsoft Research SAT/SMT

More information

Data Structures with Arithmetic Constraints: a Non-Disjoint Combination

Data Structures with Arithmetic Constraints: a Non-Disjoint Combination Data Structures with Arithmetic Constraints: a Non-Disjoint Combination E. Nicolini, C. Ringeissen, and M. Rusinowitch LORIA & INRIA Nancy Grand Est FroCoS 09 E. Nicolini et al. (LORIA & INRIA) Data structures

More information

Mining Propositional Simplification Proofs for Small Validating Clauses

Mining Propositional Simplification Proofs for Small Validating Clauses Mining Propositional Simplification Proofs for Small Validating Clauses Ian Wehrman and Aaron Stump Computer Science and Engineering, Washington University in St. Louis {iwehrman,stump}@cse.wustl.edu,

More information

The Calculus of Computation: Decision Procedures with Applications to Verification. Part I: FOUNDATIONS. by Aaron Bradley Zohar Manna

The Calculus of Computation: Decision Procedures with Applications to Verification. Part I: FOUNDATIONS. by Aaron Bradley Zohar Manna The Calculus of Computation: Decision Procedures with Applications to Verification Part I: FOUNDATIONS by Aaron Bradley Zohar Manna 1. Propositional Logic(PL) Springer 2007 1-1 1-2 Propositional Logic(PL)

More information

Lecture 2/11: Satisfiability Modulo Theories, Part I

Lecture 2/11: Satisfiability Modulo Theories, Part I EECS 219C: Computer-Aided Verification, Spr 15 Lecturer: S. A. Seshia Lecture 2/11: Satisfiability Modulo Theories, Part I Scribe: Daniel Bundala Editor: Sanjit A. Seshia Satisfiability modulo theories

More information

Introduction to SAT (constraint) solving. Justyna Petke

Introduction to SAT (constraint) solving. Justyna Petke Introduction to SAT (constraint) solving Justyna Petke SAT, SMT and CSP solvers are used for solving problems involving constraints. The term constraint solver, however, usually refers to a CSP solver.

More information

The Simplify Theorem Prover

The Simplify Theorem Prover The Simplify Theorem Prover Class Notes for Lecture No.8 by Mooly Sagiv Notes prepared by Daniel Deutch Introduction This lecture will present key aspects in the leading theorem proving systems existing

More information

Combined Satisfiability Modulo Parametric Theories

Combined Satisfiability Modulo Parametric Theories Intel 07 p.1/39 Combined Satisfiability Modulo Parametric Theories Sava Krstić*, Amit Goel*, Jim Grundy*, and Cesare Tinelli** *Strategic CAD Labs, Intel **The University of Iowa Intel 07 p.2/39 This Talk

More information

Developing Efficient SMT Solvers

Developing Efficient SMT Solvers Developing Efficient SMT Solvers CMU May 2007 Leonardo de Moura leonardo@microsoft.com Microsoft Research CMU May 2007 p.1/66 Credits Slides inspired by previous presentations by: Clark Barrett, Harald

More information

CSE507. Introduction. Computer-Aided Reasoning for Software. Emina Torlak courses.cs.washington.edu/courses/cse507/17wi/

CSE507. Introduction. Computer-Aided Reasoning for Software. Emina Torlak courses.cs.washington.edu/courses/cse507/17wi/ Computer-Aided Reasoning for Software CSE507 courses.cs.washington.edu/courses/cse507/17wi/ Introduction Emina Torlak emina@cs.washington.edu Today What is this course about? Course logistics Review of

More information

First-Order Logic First-Order Theories. Roopsha Samanta. Partly based on slides by Aaron Bradley and Isil Dillig

First-Order Logic First-Order Theories. Roopsha Samanta. Partly based on slides by Aaron Bradley and Isil Dillig First-Order Logic First-Order Theories Roopsha Samanta Partly based on slides by Aaron Bradley and Isil Dillig Roadmap Review: propositional logic Syntax and semantics of first-order logic (FOL) Semantic

More information

Lecture Notes on SAT Solvers & DPLL

Lecture Notes on SAT Solvers & DPLL 15-414: Bug Catching: Automated Program Verification Lecture Notes on SAT Solvers & DPLL Matt Fredrikson André Platzer Carnegie Mellon University Lecture 10 1 Introduction In this lecture we will switch

More information

Satisfiability Modulo Theories (SMT)

Satisfiability Modulo Theories (SMT) CS510 Software Engineering Satisfiability Modulo Theories (SMT) Slides modified from those by Aarti Gupta Textbook: The Calculus of Computation by A. Bradley and Z. Manna 1 Satisfiability Modulo Theory

More information

Foundations of Artificial Intelligence

Foundations of Artificial Intelligence Foundations of Artificial Intelligence 31. Propositional Logic: DPLL Algorithm Malte Helmert and Gabriele Röger University of Basel April 24, 2017 Propositional Logic: Overview Chapter overview: propositional

More information

The Eager Approach to SMT. Eager Approach to SMT

The Eager Approach to SMT. Eager Approach to SMT The Eager Approach to SMT Sanjit A. Seshia UC Berkeley Slides based on ICCAD 09 Tutorial Eager Approach to SMT Input Formula Satisfiability-preserving Boolean Encoder Boolean Formula SAT Solver SAT Solver

More information

Internals of SMT Solvers. Leonardo de Moura Microsoft Research

Internals of SMT Solvers. Leonardo de Moura Microsoft Research Internals of SMT Solvers Leonardo de Moura Microsoft Research Acknowledgements Dejan Jovanovic (SRI International, NYU) Grant Passmore (Univ. Edinburgh) Herbrand Award 2013 Greg Nelson What is a SMT Solver?

More information

An Interpolating Theorem Prover

An Interpolating Theorem Prover An Interpolating Theorem Prover K.L. McMillan Cadence Berkeley Labs Abstract. We present a method of deriving Craig interpolants from proofs in the quantifier-free theory of linear inequality and uninterpreted

More information

An Efficient Decision Procedure for Functional Decomposable Theories Based on Dual Constraints

An Efficient Decision Procedure for Functional Decomposable Theories Based on Dual Constraints An Efficient Decision Procedure for Functional Decomposable Theories Based on Dual Constraints Khalil Djelloul Laboratoire d Informatique Fondamentale d Orléans. Bat. 3IA, rue Léonard de Vinci. 45067 Orléans,

More information

CS156: The Calculus of Computation Zohar Manna Autumn 2008

CS156: The Calculus of Computation Zohar Manna Autumn 2008 Page 3 of 52 Page 4 of 52 CS156: The Calculus of Computation Zohar Manna Autumn 2008 Lecturer: Zohar Manna (manna@cs.stanford.edu) Office Hours: MW 12:30-1:00 at Gates 481 TAs: Boyu Wang (wangboyu@stanford.edu)

More information

Polite Theories Revisited

Polite Theories Revisited Polite Theories Revisited Dejan Jovanović and Clark Barrett New York University dejan@cs.nyu.edu, barrett@cs.nyu.edu c Springer-Verlag Abstract. The classic method of Nelson and Oppen for combining decision

More information

a > 3, (a = b a = b + 1), f(a) = 0, f(b) = 1

a > 3, (a = b a = b + 1), f(a) = 0, f(b) = 1 Yeting Ge New York University Leonardo de Moura Microsoft Research a > 3, (a = b a = b + 1), f(a) = 0, f(b) = 1 Dynamic symbolic execution (DART) Extended static checking Test-case generation Bounded model

More information

Finding Conflicting Instances of Quantified Formulas in SMT. Andrew Reynolds Cesare Tinelli Leonardo De Moura July 18, 2014

Finding Conflicting Instances of Quantified Formulas in SMT. Andrew Reynolds Cesare Tinelli Leonardo De Moura July 18, 2014 Finding Conflicting Instances of Quantified Formulas in SMT Andrew Reynolds Cesare Tinelli Leonardo De Moura July 18, 2014 Outline of Talk SMT solvers: Efficient methods for ground constraints Heuristic

More information

Leonardo de Moura Microsoft Research

Leonardo de Moura Microsoft Research Leonardo de Moura Microsoft Research Logic is The Calculus of Computer Science (Z. Manna). High computational complexity Naïve solutions will not scale Is formula F satisfiable modulo theory T? SMT solvers

More information

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

Automated Program Verification and Testing 15414/15614 Fall 2016 Lecture 3: Practical SAT Solving Automated Program Verification and Testing 15414/15614 Fall 2016 Lecture 3: Practical SAT Solving Matt Fredrikson mfredrik@cs.cmu.edu October 17, 2016 Matt Fredrikson SAT Solving 1 / 36 Review: Propositional

More information

A Randomized Satisfiability Procedure for Arithmetic and Uninterpreted Function Symbols

A Randomized Satisfiability Procedure for Arithmetic and Uninterpreted Function Symbols A Randomized Satisfiability Procedure for Arithmetic and Uninterpreted Function Symbols Sumit Gulwani and George C. Necula University of California, Berkeley {gulwani,necula}@cs.berkeley.edu Abstract.

More information

Lazy Proofs for DPLL(T)-Based SMT Solvers

Lazy Proofs for DPLL(T)-Based SMT Solvers Lazy Proofs for DPLL(T)-Based SMT Solvers Guy Katz, Clark Barrett New York University Cesare Tinelli, Andrew Reynolds The University of Iowa Liana Hadarean Synopsys Inc. Abstract With the integration of

More information

Combining Non-Stably Infinite Theories

Combining Non-Stably Infinite Theories Combining Non-Stably Infinite Theories Cesare Tinelli Calogero G. Zarba 1 tinelli@cs.uiowa.edu zarba@theory.stanford.edu Department of Computer Science The University of Iowa Report No. 03-01 April 2003

More information

Overview, cont. Overview, cont. Logistics. Optional Reference #1. Optional Reference #2. Workload and Grading

Overview, cont. Overview, cont. Logistics. Optional Reference #1. Optional Reference #2. Workload and Grading Course staff CS389L: Automated Logical Reasoning Lecture 1: ntroduction and Review of Basics şıl Dillig nstructor: şil Dillig E-mail: isil@cs.utexas.edu Office hours: Thursday after class until 6:30 pm

More information

Abstract Answer Set Solvers with Backjumping and Learning

Abstract Answer Set Solvers with Backjumping and Learning Under consideration for publication in Theory and Practice of Logic Programming 1 Abstract Answer Set Solvers with Backjumping and Learning YULIYA LIERLER Department of Computer Science University of Texas

More information

Predicate Abstraction via Symbolic Decision Procedures

Predicate Abstraction via Symbolic Decision Procedures Predicate Abstraction via Symbolic Decision Procedures Shuvendu K. Lahiri Thomas Ball Byron Cook May 26, 2005 Technical Report MSR-TR-2005-53 Microsoft Research Microsoft Corporation One Microsoft Way

More information

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

Computational Logic. Davide Martinenghi. Spring Free University of Bozen-Bolzano. Computational Logic Davide Martinenghi (1/30) Computational Logic Davide Martinenghi Free University of Bozen-Bolzano Spring 2010 Computational Logic Davide Martinenghi (1/30) Propositional Logic - sequent calculus To overcome the problems of natural

More information

Stable Models and Difference Logic

Stable Models and Difference Logic Stable Models and Difference Logic Ilkka Niemelä Helsinki University of Technology Laboratory for Theoretical Computer Science P.O.Box 5400, FI-02015 TKK, Finland Ilkka.Niemela@tkk.fi Dedicated to Victor

More information

Congruence-Anticongruence Closure

Congruence-Anticongruence Closure Abstract Congruence-Anticongruence Closure Ján Kl uka kluka@fmph.uniba.sk Department of Applied Informatics Faculty of Mathematics, Physics and Informatics Comenius University Bratislava Mlynská dolina

More information

Model Based Theory Combination

Model Based Theory Combination Model Based Theory Combination SMT 2007 Leonardo de Moura and Nikolaj Bjørner {leonardo, nbjorner}@microsoft.com. Microsoft Research Model Based Theory Combination p.1/20 Combination of Theories In practice,

More information

In this paper, we take a new approach to explaining Shostak's algorithm. We rst present a subset of the original algorithm, in particular, the subset

In this paper, we take a new approach to explaining Shostak's algorithm. We rst present a subset of the original algorithm, in particular, the subset A Generalization of Shostak's Method for Combining Decision Procedures Clark W. Barrett, David L. Dill, and Aaron Stump Stanford University, Stanford, CA 94305, USA, http://verify.stanford.edu c Springer-Verlag

More information

Constraint Logic Programming and Integrating Simplex with DPLL(T )

Constraint Logic Programming and Integrating Simplex with DPLL(T ) Constraint Logic Programming and Integrating Simplex with DPLL(T ) Ali Sinan Köksal December 3, 2010 Constraint Logic Programming Underlying concepts The CLP(X ) framework Comparison of CLP with LP Integrating

More information

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

Verification using Satisfiability Checking, Predicate Abstraction, and Craig Interpolation. Himanshu Jain THESIS ORAL TALK Verification using Satisfiability Checking, Predicate Abstraction, and Craig Interpolation Himanshu Jain THESIS ORAL TALK 1 Computer Systems are Pervasive Computer Systems = Software + Hardware Software/Hardware

More information

Foundations of Artificial Intelligence

Foundations of Artificial Intelligence Foundations of Artificial Intelligence 8. Satisfiability and Model Construction Davis-Putnam-Logemann-Loveland Procedure, Phase Transitions, GSAT Joschka Boedecker and Wolfram Burgard and Bernhard Nebel

More information

SMT BASICS WS 2017/2018 ( ) LOGIC SATISFIABILITY MODULO THEORIES. Institute for Formal Models and Verification Johannes Kepler Universität Linz

SMT BASICS WS 2017/2018 ( ) LOGIC SATISFIABILITY MODULO THEORIES. Institute for Formal Models and Verification Johannes Kepler Universität Linz LOGIC SATISFIABILITY MODULO THEORIES SMT BASICS WS 2017/2018 (342.208) Armin Biere Martina Seidl biere@jku.at martina.seidl@jku.at Institute for Formal Models and Verification Johannes Kepler Universität

More information

Satisfiability Modulo Theories

Satisfiability Modulo Theories Satisfiability Modulo Theories Clark Barrett and Cesare Tinelli Abstract Satisfiability Modulo Theories (SMT) refers to the problem of determining whether a first-order formula is satisfiable with respect

More information

Chapter 7 R&N ICS 271 Fall 2017 Kalev Kask

Chapter 7 R&N ICS 271 Fall 2017 Kalev Kask Set 6: Knowledge Representation: The Propositional Calculus Chapter 7 R&N ICS 271 Fall 2017 Kalev Kask Outline Representing knowledge using logic Agent that reason logically A knowledge based agent Representing

More information

From SAT To SMT: Part 1. Vijay Ganesh MIT

From SAT To SMT: Part 1. Vijay Ganesh MIT From SAT To SMT: Part 1 Vijay Ganesh MIT Software Engineering & SMT Solvers An Indispensable Tactic for Any Strategy Formal Methods Program Analysis SE Goal: Reliable/Secure Software Automatic Testing

More information

Automated Program Verification and Testing 15414/15614 Fall 2016 Lecture 7: Procedures for First-Order Theories, Part 1

Automated Program Verification and Testing 15414/15614 Fall 2016 Lecture 7: Procedures for First-Order Theories, Part 1 Automated Program Verification and Testing 15414/15614 Fall 2016 Lecture 7: Procedures for First-Order Theories, Part 1 Matt Fredrikson mfredrik@cs.cmu.edu October 17, 2016 Matt Fredrikson Theory Procedures

More information

Comp487/587 - Boolean Formulas

Comp487/587 - Boolean Formulas Comp487/587 - Boolean Formulas 1 Logic and SAT 1.1 What is a Boolean Formula Logic is a way through which we can analyze and reason about simple or complicated events. In particular, we are interested

More information

Interpolation. Seminar Slides. Betim Musa. 27 th June Albert-Ludwigs-Universität Freiburg

Interpolation. Seminar Slides. Betim Musa. 27 th June Albert-Ludwigs-Universität Freiburg Interpolation Seminar Slides Albert-Ludwigs-Universität Freiburg Betim Musa 27 th June 2015 Motivation program add(int a, int b) { var x,i : int; l 0 assume(b 0); l 1 x := a; l 2 i := 0; while(i < b) {

More information

Propositional Reasoning

Propositional Reasoning Propositional Reasoning CS 440 / ECE 448 Introduction to Artificial Intelligence Instructor: Eyal Amir Grad TAs: Wen Pu, Yonatan Bisk Undergrad TAs: Sam Johnson, Nikhil Johri Spring 2010 Intro to AI (CS

More information

Lecture 1: Logical Foundations

Lecture 1: Logical Foundations Lecture 1: Logical Foundations Zak Kincaid January 13, 2016 Logics have two components: syntax and semantics Syntax: defines the well-formed phrases of the language. given by a formal grammar. Typically

More information

LOGIC PROPOSITIONAL REASONING

LOGIC PROPOSITIONAL REASONING LOGIC PROPOSITIONAL REASONING WS 2017/2018 (342.208) Armin Biere Martina Seidl biere@jku.at martina.seidl@jku.at Institute for Formal Models and Verification Johannes Kepler Universität Linz Version 2018.1

More information

Lecture 9: The Splitting Method for SAT

Lecture 9: The Splitting Method for SAT Lecture 9: The Splitting Method for SAT 1 Importance of SAT Cook-Levin Theorem: SAT is NP-complete. The reason why SAT is an important problem can be summarized as below: 1. A natural NP-Complete problem.

More information

Model Evolution with Equality Modulo Built-in Theories

Model Evolution with Equality Modulo Built-in Theories Model Evolution with Equality Modulo Built-in Theories Peter Baumgartner 1 and Cesare Tinelli 2 1 NICTA and Australian National University, Canberra, Australia 2 The University of Iowa, USA Abstract. Many

More information

Pythagorean Triples and SAT Solving

Pythagorean Triples and SAT Solving Pythagorean Triples and SAT Solving Moti Ben-Ari Department of Science Teaching Weizmann Institute of Science http://www.weizmann.ac.il/sci-tea/benari/ c 2017-18 by Moti Ben-Ari. This work is licensed

More information

Complete instantiation for quantified formulas in Satisfiability Modulo Theories

Complete instantiation for quantified formulas in Satisfiability Modulo Theories Complete instantiation for quantified formulas in Satisfiability Modulo Theories Yeting Ge 1 and Leonardo de Moura 2 1 Department of Computer Science, New York University, NY, NY 10012, USA yeting@cs.nyu.edu

More information

Computation and Inference

Computation and Inference Computation and Inference N. Shankar Computer Science Laboratory SRI International Menlo Park, CA July 13, 2018 Length of the Longest Increasing Subsequence You have a sequence of numbers, e.g., 9, 7,

More information

The Impact of Craig s Interpolation Theorem. in Computer Science

The Impact of Craig s Interpolation Theorem. in Computer Science The Impact of Craig s Interpolation Theorem in Computer Science Cesare Tinelli tinelli@cs.uiowa.edu The University of Iowa Berkeley, May 2007 p.1/28 The Role of Logic in Computer Science Mathematical logic

More information

CS:4420 Artificial Intelligence

CS:4420 Artificial Intelligence CS:4420 Artificial Intelligence Spring 2018 Propositional Logic Cesare Tinelli The University of Iowa Copyright 2004 18, Cesare Tinelli and Stuart Russell a a These notes were originally developed by Stuart

More information

A two-tier technique for supporting quantifiers in a lazily proof-explicating theorem prover

A two-tier technique for supporting quantifiers in a lazily proof-explicating theorem prover A two-tier technique for supporting quantifiers in a lazily proof-explicating theorem prover K. Rustan M. Leino 0, Madan Musuvathi 0, and Xinming Ou 1 0 Microsoft Research, Redmond, WA, USA {leino,madanm}@microsoft.com

More information

SMT: Satisfiability Modulo Theories

SMT: Satisfiability Modulo Theories SMT: Satisfiability Modulo Theories Ranjit Jhala, UC San Diego April 9, 2013 Decision Procedures Last Time Propositional Logic Today 1. Combining SAT and Theory Solvers 2. Theory Solvers Theory of Equality

More information

Intelligent Agents. Pınar Yolum Utrecht University

Intelligent Agents. Pınar Yolum Utrecht University Intelligent Agents Pınar Yolum p.yolum@uu.nl Utrecht University Logical Agents (Based mostly on the course slides from http://aima.cs.berkeley.edu/) Outline Knowledge-based agents Wumpus world Logic in

More information

Formal Verification Methods 1: Propositional Logic

Formal Verification Methods 1: Propositional Logic Formal Verification Methods 1: Propositional Logic John Harrison Intel Corporation Course overview Propositional logic A resurgence of interest Logic and circuits Normal forms The Davis-Putnam procedure

More information

Rewrite-Based Satisfiability Procedures for Recursive Data Structures

Rewrite-Based Satisfiability Procedures for Recursive Data Structures Rewrite-Based Satisfiability Procedures for Recursive Data Structures Maria Paola Bonacina and Mnacho Echenim Dipartimento di Informatica Università degli Studi di Verona, Italy Abstract The superposition

More information

ME(LIA) - Model Evolution With Linear Integer Arithmetic Constraints

ME(LIA) - Model Evolution With Linear Integer Arithmetic Constraints ME(LIA) - Model Evolution With Linear Integer Arithmetic Constraints Peter Baumgartner 1, Alexander Fuchs 2, and Cesare Tinelli 2 1 National ICT Australia (NICTA), PeterBaumgartner@nictacomau 2 The University

More information

Integrating Simplex with DPLL(T )

Integrating Simplex with DPLL(T ) CSL Technical Report SRI-CSL-06-01 May 23, 2006 Integrating Simplex with DPLL(T ) Bruno Dutertre and Leonardo de Moura This report is based upon work supported by the Defense Advanced Research Projects

More information

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

Warm-Up Problem. Is the following true or false? 1/35 Warm-Up Problem Is the following true or false? 1/35 Propositional Logic: Resolution Carmen Bruni Lecture 6 Based on work by J Buss, A Gao, L Kari, A Lubiw, B Bonakdarpour, D Maftuleac, C Roberts, R Trefler,

More information

EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization

EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization Discrete Systems Lecture: State-Space Exploration Stavros Tripakis University of California, Berkeley Stavros Tripakis:

More information

IntSat: From SAT to Integer Linear Programming

IntSat: From SAT to Integer Linear Programming IntSat: From SAT to Integer Linear Programming CPAIOR 2015 (invited talk) Robert Nieuwenhuis Barcelogic.com - Computer Science Department BarcelonaTech (UPC) 1 Proposed travel arrangements (next time):

More information

ILP Modulo Theories. Panagiotis Manolios and Vasilis Papavasileiou. Northeastern University

ILP Modulo Theories. Panagiotis Manolios and Vasilis Papavasileiou. Northeastern University ILP Modulo Theories Panagiotis Manolios and Vasilis Papavasileiou Northeastern University {pete,vpap}@ccs.neu.edu Abstract. We present Integer Linear Programming (ILP) Modulo Theories (IMT). An IMT instance

More information