Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on...
-
date post
22-Dec-2015 -
Category
Documents
-
view
216 -
download
0
Transcript of Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on...
![Page 1: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/1.jpg)
Decision Procedures
Mooly Sagiv
![Page 2: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/2.jpg)
Bibliography
• Nelson & Oppen Fast Decision Procedures Based on Congruence ClosureJACM 1979
• Stump, Dill, Barrett, LevittA Decision Procedure for an Extensional Theory of ArraysLICS’01
![Page 3: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/3.jpg)
Decision Procedures
• Complete (terminating) algorithms for determining the validity (satisfiability) of a formula in a given logic– Cost is an issue
• Decidable logic a logic with a decision procedure for every formula
• Decidable (computation problem) there exists an a terminating algorithm which solves every instance of the problem
![Page 4: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/4.jpg)
Obtaining a decision procedure
• Limit the logic
• Limit the class of intended models
• Answer validity (satisfiabilty) w.r.t. a given theoryT F
![Page 5: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/5.jpg)
Church’s Theorem 1936
• First order logic is undecidable
![Page 6: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/6.jpg)
Trakhtenbrot 50
• First order logic over finite models is undecidable
![Page 7: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/7.jpg)
Tarski’s Theorem 1951
• First-order theory of reals with +, *, =, > is decidable
• But undecidable over integers– Decidable for Presburger arithmetic 1929
• Simplex
– Efficient for difference constraints
![Page 8: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/8.jpg)
Rabin’s Theorem 1969
• Monadic theory of the infinite binary trees is decidable
![Page 9: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/9.jpg)
Proving Decidability
• Small model theorem– Every satisfiable formula has a model whose size if
proportional to the size of the formula
• Direct decision procedure
• Reduction to another decidable logic
![Page 10: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/10.jpg)
Quantifier Free First Order Logic
• Universal formulas only
• Allow a fixed scheme of first order formulas T
• Determine if T F
• Decidable for interesting theories– Uninterpreted functions
a, b: f(a, b) = a f(f(a, b), b) = a
– Theory of lists– Arrays
• Different theories can be combined
![Page 11: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/11.jpg)
Theory of Uninterpreted Functions (EUF)
• Theory T x, y: x = y f (x) = f(y)
• Determine the validity of universal formulas
• Decidability Ackerman 1954
• Downey, Sethi, Tarjan, Kozen, Nelson& Open 1976-77 Efficient Algorithms
• Bryant, German, Velev 1999 Improvements for positive terms
![Page 12: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/12.jpg)
Small model property of EUF formulas
• Ackerman 1954
• Every satisfiable formula has a model of size k where k is the number of distinct function application terms
• Example– x = y f(g(x)) = f (g(y))– {x, y, g(x), g(y), f(g(x)), f(g(y))}
• Impractical algorithm
![Page 13: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/13.jpg)
Proof by Refutation
• Determine the validity of a formula by checking the satifiability of its negation
• For quantifier free it is enough to consider Conjunction of literals– DNF– SMT
• Example “a, b: f(a, b) = af(f(a, b), b) = a”– Proof that
“f(ca, cb) = ca f((f(ca, cb), cb) = ca” is not satisfiable
![Page 14: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/14.jpg)
An efficient EUF algorithm (intuition)
• Goal prove satifiability of t1=u1 … tp=up r1 s1 ... rq sq
• Represent terms using DAGs
• Unify equal terms and their consequences
• Report UNSAT when contradicts inequalities
• Otherwise report SAT
![Page 15: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/15.jpg)
The Congruent Closure Problem
• Given– A finite labeled directed graph G
• Nodes are labeled by function symbols• Edges are labeled
– A binary relation R on the nodes
• Two nodes are congruent under R if– They have the same label– Their neighbors are in R (respectively)
• R is closed under congruences if all congruent nodes according to R are in R
• Compute the a minimal extension of R which is an equivalence relation and closed under congruences
![Page 16: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/16.jpg)
Example 1
f(ca, cb) = ca f((f(ca, cb), cb) = ca
![Page 17: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/17.jpg)
Example 2
a: f(f(f(a))) = a f(f(f(f(f(a)))))=a f(a) = a
f(f(f(a))) = a f(f(f(f(f(a)))))=a f(a) a
![Page 18: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/18.jpg)
Computing Congruence Closure
• Let R be a relation which is congruence closed
• Compute the congruence closure of R {(u, v)} by MERGE(u, v)
MERGE(u, v)
1. If FIND(u) = FIND(v) then return
2. Let Pu be the predecessors of vertices equivalent to u and Pv be the predecessors of vertices equivalent to to v
3. UNION(u, v)
4. For each pair (x, y) such that x Pu, y Pv, CONGRUENT(x, y) and FIND(x) FIND(y) do MERGE(x, y)
CONGRUENT(u, v) = label(u) = label(v) i: FIND(u[i]) = FIND(v[i])
![Page 19: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/19.jpg)
Properties of the Congruence Closure Algorithm
• Partial Correctness
• Complexity O(m2)
• Downey, Sethi, and Tarjan achieves O(m log n) by storing the vertices in a hash table keyed by the list of equivalence classes of their successors
![Page 20: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/20.jpg)
Application 1: EUF
• Construct a graph G which corresponds to the set of all terms appearing in the conjunctiont1=u1 … tp=up r1 s1 ... rq sq
• For each term i appearing in the conjunction let (i) denote the node of the term
• Let R be the identity relation on vertices
• For every 1 i p, MERGE((ti), (ui))
• If for some 1 j q, (rj) is equivalent to (sj)) report UNSAT
• Otherwise report SAT
![Page 21: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/21.jpg)
Improvements and Extensions
• Lahiri, Bryant, Goel, Talupur TACAS 2004
• Explicit Representation ITE(e1, e2, e3) = (e1 e2) (e1e2) P(T1, T2, …, Tk)
• Treat `positive’ terms differently
![Page 22: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/22.jpg)
Simple Theory of Lisp Lists
• CAR, CDR, CONS without Nil values
• Use congruence closure with special equalities
x, y: CAR(CONS(x, y)) = x
x, y: CDR(CONS(x, y)) = y
x: ATOM(x) CONS(CAR(x), CDR(x)) = x
x, y: ATOM(CONS(x, y))
x, y: CAR(x)=CAR(y) CDR(x) = CDR(y) ATOM(x) ATOM(y) f(x) = f(y)
![Page 23: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/23.jpg)
Application 2: Lisp
• v1=w1 … br=wr x1 y1 ... xsys ATOM(u1) … ATOM(uq)
• Construct a graph G which corresponds to the set of all terms appearing in the conjunction
• For each term i appearing in the conjunction let (i) denote the node of the term
• Let R be the identity relation on vertices
• For every 1 i r, MERGE((vi), (wi))
• For every vertex u labeled by CONS add a vertex v labeled by CAR and a vertex w labeled by CDR with out degree one s.t. v[1]=w[1]=u and MERGE(v, u[1]) and MERGE(v, u[2])
• If for some 1 j s, (xj) is equivalent to (yj)) report UNSAT
• If for some 1 j q, (uj) is equivalent to a CONS node report UNSAT
• Otherwise report SAT
![Page 24: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/24.jpg)
Integrating Values
• Becomes NP-Hard
x, y: CAR(CONS(x, y)) = x
x, y: CDR(CONS(x, y)) = y
x: X NIL CONS(CAR(x), CDR(x)) = x
x, y: CONS(x, y) NIL
CAR)NIL( = CDR(NIL)=NIL
![Page 25: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/25.jpg)
Theory of Arrays (Stores)
• SELECT(UPDATE(v, i, e), j) = if i=j then e else SELECT(v, j)
• UPDATE)v, i, SELECT(v, i)) = v
• UPDATE)UPDATE)v, i, e), i, f) = UPDATE(v, i, f)
• i j UPDATE (UPDATE (v, i, e), j, f) = UPDATE (UPDATE (v, j, f), I, e)
• Eliminate UPDATE and use EUF
![Page 26: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/26.jpg)
Combining Decision Procedures
• Programming languages combine different features– Arithmetic– Data types– Arrays– …
• Is there a way to compose decision procedures of different theories?
• Given two decidable logics is there a way to combine the logics into a decidable logic?
![Page 27: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/27.jpg)
Bibliography
• Nelson & Oppen Fast Decision Procedures Based on Congruence ClosureJACM 1979
• Stump, Dill, Barrett, LevittA Decision Procedure for an Extensional Theory of ArraysLICS’01
![Page 28: Decision Procedures Mooly Sagiv. Bibliography Nelson & Oppen Fast Decision Procedures Based on Congruence Closure JACM 1979 Stump, Dill, Barrett, Levitt.](https://reader030.fdocuments.net/reader030/viewer/2022032523/56649d825503460f94a670ce/html5/thumbnails/28.jpg)
Conclusion
• Interesting decision procedures exist
• Employed in theorem provers and optimizing compilers
• Developing a decision procedure is non-obvious– Different theories may imply different costs– Fragile