An Introduction to Satisfiability Modulo Theories
|
|
- Chrystal Clarke
- 5 years ago
- Views:
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 I LL TALK ABOUT Propositional Logic Terminology, Satisfiability, Decision Procedure First-Order Logic Terminology, Background Theories Satisfiability
More informationTutorial 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 informationSolving 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 informationSolving 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 informationAbstract 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 informationSatisfiability 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 informationTopics 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 informationFoundations 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 informationSAT 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 informationSatisfiability 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 informationSatisfiability 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 informationStrategies 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 informationCombining 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 informationNP-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 informationTheory 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 informationSolving 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 informationEfficient 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 informationConstraint 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 informationLecture 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 informationQuantifiers. 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 informationRewriting 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 informationFinite 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 informationSolvers 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 informationSatisfiability 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 informationLeonardo 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 informationCS156: 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 informationFinding 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 informationAn 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 informationCOMP219: 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 informationRound 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 informationClassical 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 informationModel-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 informationA 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 informationData 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 informationSatisfiability 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 informationData 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 informationMining 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 informationThe 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 informationLecture 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 informationIntroduction 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 informationThe 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 informationCombined 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 informationDeveloping 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 informationCSE507. 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 informationFirst-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 informationLecture 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 informationSatisfiability 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 informationFoundations 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 informationThe 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 informationInternals 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 informationAn 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 informationAn 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 informationCS156: 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 informationPolite 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 informationa > 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 informationFinding 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 informationLeonardo 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 informationAutomated 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 informationA 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 informationLazy 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 informationCombining 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 informationOverview, 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 informationAbstract 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 informationPredicate 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 informationComputational 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 informationStable 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 informationCongruence-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 informationModel 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 informationIn 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 informationConstraint 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 informationVerification 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 informationFoundations 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 informationSMT 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 informationSatisfiability 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 informationChapter 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 informationFrom 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 informationAutomated 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 informationComp487/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 informationInterpolation. 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 informationPropositional 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 informationLecture 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 informationLOGIC 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 informationLecture 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 informationModel 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 informationPythagorean 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 informationComplete 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 informationComputation 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 informationThe 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 informationCS: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 informationA 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 informationSMT: 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 informationIntelligent 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 informationFormal 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 informationRewrite-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 informationME(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 informationIntegrating 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 informationWarm-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 informationEECS 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 informationIntSat: 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 informationILP 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