Top Banner

of 96

Decision Procedures for Recursive Data Structures

May 30, 2018

Download

Documents

Andreas Sander
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    1/96

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Decision Procedures for Recursive Data Structures

    Andreas Sander

    Decision Procedures for Logical Theories, SS 2010

    16.06.2010

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    2/96

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Motivation

    Intuition

    A recursive data structure is (partially) composed of smaller orsimpler instances of the same structure.

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    3/96

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Motivation

    Intuition

    A recursive data structure is (partially) composed of smaller orsimpler instances of the same structure.

    Example: cons(1,cons(2,cons(3,nil)))

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    4/96

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Motivation

    Intuition

    A recursive data structure is (partially) composed of smaller orsimpler instances of the same structure.

    Example: cons(1,cons(2,cons(3,nil)))

    Main Goal

    The main goal is to define decision procedures for recursive data

    structures.

    M i i P bl O li Th R i D S Th I d Th

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    5/96

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Motivation

    Intuition

    A recursive data structure is (partially) composed of smaller orsimpler instances of the same structure.

    Example: cons(1,cons(2,cons(3,nil)))

    Main Goal

    The main goal is to define decision procedures for recursive data

    structures.Whats about:|cons(1,cons(2,cons(3,nil)))| > 3 ?

    M ti ti P bl O tli Th t t R i D t St t Th I t t d Th

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    6/96

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Problem-OutlineWhat we have and what we want

    Theory of recursive data structures Th(A)

    Motivation Problem Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    7/96

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Problem-OutlineWhat we have and what we want

    Theory of recursive data structures Th(A)

    Presburger Arithmetic Th(AZ)

    Motivation Problem Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    8/96

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Problem-OutlineWhat we have and what we want

    Theory of recursive data structures Th(A)

    Presburger Arithmetic Th(AZ)

    Length Function

    |.| : Z

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    9/96

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Problem-OutlineWhat we have and what we want

    Theory of recursive data structures Th(A)

    Presburger Arithmetic Th(AZ)

    Length Function

    |.| : Z

    GoalGet a decision procedure for the combination of Th( A), Th(AZ)and |.| : Z

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    10/96

    Motivation Problem Outline The structures Recursive Data Structures The Integrated Theory

    Problem-OutlineApplicability of Nelson & Oppen

    We want to combine this with Nelsons and Oppens method:

    Theory of recursive data structures Th(A)

    Presburger Arithmetic Th(AZ)

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    11/96

    g y

    Problem-OutlineApplicability of Nelson & Oppen

    We want to combine this with Nelsons and Oppens method:

    Theory of recursive data structures Th(A)

    Presburger Arithmetic Th(AZ)

    Length Function|.| : Z

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    12/96

    g y

    Problem-OutlineApplicability of Nelson & Oppen

    We want can not combine this with Nelsons and Oppens method:

    Theory of recursive data structures Th(A)

    Presburger Arithmetic Th(AZ)

    Length Function|.| : Z

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    13/96

    g y

    Problem-OutlineThe Solution

    Solution

    Extension of Nelsons and Oppens original method!

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    14/96

    Problem-OutlineThe Solution

    Solution

    Extension of Nelsons and Oppens original method!

    Overview of this talk:

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    15/96

    Problem-OutlineThe Solution

    Solution

    Extension of Nelsons and Oppens original method!

    Overview of this talk:

    Presburger Arithmetic

    Decision Procedure

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    16/96

    Problem-OutlineThe Solution

    Solution

    Extension of Nelsons and Oppens original method!

    Overview of this talk:

    Presburger Arithmetic

    Decision Procedure

    Theory of recursive data structure

    Decision Procedure

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    17/96

    Problem-OutlineThe Solution

    Solution

    Extension of Nelsons and Oppens original method!

    Overview of this talk:

    Presburger Arithmetic

    Decision Procedure

    Theory of recursive data structure

    Decision ProcedureExtension of Nelsons and Oppens method in the presence oflength |.|

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    18/96

    Presburger Arithmetic

    first-order theory

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    19/96

    Presburger Arithmetic

    first-order theory

    corresponding structure AZ : Z; 0, s,+,,

  • 8/9/2019 Decision Procedures for Recursive Data Structures

    20/96

    Presburger Arithmetic

    first-order theory

    corresponding structure AZ : Z; 0, s,+,,

  • 8/9/2019 Decision Procedures for Recursive Data Structures

    21/96

    Presburger Arithmetic

    first-order theory

    corresponding structure AZ : Z; 0, s,+,,

  • 8/9/2019 Decision Procedures for Recursive Data Structures

    22/96

    Presburger Arithmetic

    first-order theory

    corresponding structure AZ : Z; 0, s,+,,

  • 8/9/2019 Decision Procedures for Recursive Data Structures

    23/96

    Presburger Arithmetic

    first-order theory

    corresponding structure AZ : Z; 0, s,+,,

  • 8/9/2019 Decision Procedures for Recursive Data Structures

    24/96

    Presburger Arithmetic

    first-order theory

    corresponding structure AZ : Z; 0, s,+,,

  • 8/9/2019 Decision Procedures for Recursive Data Structures

    25/96

    Presburger Arithmetic

    first-order theory

    corresponding structure AZ : Z; 0, s,+,,

  • 8/9/2019 Decision Procedures for Recursive Data Structures

    26/96

    Presburger Arithmetic

    first-order theory

    corresponding structure AZ : Z; 0, s,+,,

  • 8/9/2019 Decision Procedures for Recursive Data Structures

    27/96

    Recursive Data Structures

    A : ; A, C,S, T consists of

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    28/96

    Recursive Data Structures

    A : ; A, C,S, T consists of

    a data domain

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    29/96

    Recursive Data Structures

    A : ; A, C,S, T consists of

    a data domain

    a set of atoms A (e.g. A = {a, b, c,...})

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    30/96

    Recursive Data Structures

    A : ; A, C,S, T consists of

    a data domain

    a set of atoms A (e.g. A = {a, b, c,...})

    a finite set of constructors C (e.g. C = {,,,...})

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    31/96

    Recursive Data Structures

    A : ; A, C,S, T consists of

    a data domain

    a set of atoms A (e.g. A = {a, b, c,...})

    a finite set of constructors C (e.g. C = {,,,...})

    a finite set of selectors S (e.g. if has arity k > 0:

    {s1 , ..., sk } S)

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    32/96

    Recursive Data Structures

    A : ; A, C,S, T consists of

    a data domain

    a set of atoms A (e.g. A = {a, b, c,...})

    a finite set of constructors C (e.g. C = {,,,...})

    a finite set of selectors S (e.g. if has arity k > 0:

    {s1 , ..., sk } S)

    a finite set of testers T (e.g. Is(x) is true iff x is an -term.)

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    A f A A (LISP l )

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    33/96

    Axiomatization ofA = AList (LISP list structure)

    A Example AList

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    A i i i f A A (LISP li )

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    34/96

    Axiomatization ofA = AList (LISP list structure)

    A Example AListt(x) = x cons (x, y) = x

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    A i i i f A A (LISP li )

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    35/96

    Axiomatization ofA = AList (LISP list structure)

    A Example AList

    a = (x1, ...,xar()) a = cons(x, y)

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    A i ti ti f A A (LISP li t t t )

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    36/96

    Axiomatization ofA = AList (LISP list structure)

    A Example AList

    (x1, ..., xar()) = (y1, ..., yar()) cons(x, y) = cons(z, t)

    1iar() xi = yi x = z y = t

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    A i ti ti f A A (LISP li t t t )

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    37/96

    Axiomatization ofA = AList (LISP list structure)

    A Example AList

    IsA(x) C Is(x) IsA(x) Iscons(x)

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Axiomatization of A A (LISP list structure)

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    38/96

    Axiomatization ofA = AList (LISP list structure)

    A Example AList

    si

    (x) = y z((z) = x y = zi) cdr(cons(x, y)) = y(z((z) = x) x = y) IsA(x) {car, cdr}+(x) = x

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    39/96

    Goal

    Check satisfiability of

    q1 = r1 ... qk = rk s1 = t1 ... sl = tl

    in Th(A).

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    40/96

    Goal

    Check satisfiability of

    q1 = r1 ... qk = rk s1 = t1 ... sl = tl

    in Th(A).

    Idea

    Use a Directed Acyclic Graph (DAG) for those formulae.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Term Representation

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    41/96

    Term-Representation

    Term t can be represented by a tree Tt, s.t.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Term-Representation

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    42/96

    Term-Representation

    Term t can be represented by a tree Tt, s.t.

    1 If t is a constant, Tt is a leaf vertex (labeld by t)

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Term-Representation

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    43/96

    Term-Representation

    Term t can be represented by a tree Tt, s.t.

    1 If t is a constant, Tt is a leaf vertex (labeld by t)

    2 If t = (t1, ..., tk), then Tt is a tree (root labeled by t),having Tt1, ...,Ttk as its subtrees (ordered).

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Term-Representation

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    44/96

    Term Representation

    Term t can be represented by a tree Tt, s.t.

    1 If t is a constant, Tt is a leaf vertex (labeld by t)

    2 If t = (t1, ..., tk), then Tt is a tree (root labeled by t),having Tt1, ...,Ttk as its subtrees (ordered).

    A directed acyclic graph (DAG) Gt of t obtained from Tt byfactoring out common subtrees.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    45/96

    Goal

    Check satisfiability of

    q1 = r1 ... qk = rk s1 = t1 ... sl = tl

    in Th(A).

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    46/96

    Goal

    Check satisfiability of

    q1 = r1 ... qk = rk s1 = t1 ... sl = tl

    in Th(A).

    Idea

    Use a Directed Acyclic Graph (DAG) for those formulae.

    1 Add (qi, ri)(i {1,...k}) to an equivalence relation R on

    vertices2 Close R under congruences and unification.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Groundwork

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    47/96

    Groundwork

    G = (V,E) a DAG (with ordered edges).

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Groundwork

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    48/96

    G = (V,E) a DAG (with ordered edges).

    Let be u V

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Groundwork

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    49/96

    G = (V,E) a DAG (with ordered edges).

    Let be u V

    outdegree (u)

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Groundwork

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    50/96

    G = (V,E) a DAG (with ordered edges).

    Let be u V

    outdegree (u)

    the ith successor u[i] (i [0; (u)])

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Groundwork

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    51/96

    G = (V,E) a DAG (with ordered edges).

    Let be u V

    outdegree (u)

    the ith successor u[i] (i [0; (u)])

    R is an equivalence relation on the vertices of G.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Bidirectional Closure vs. Congruence Closure

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    52/96

    Bidirectional Closure instead of Congruence Closure [Oppen 1980]

    For the following decision procedures we will use the bidirectional

    closure, instead of the congruence closure!

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Bidirectional Closure vs. Congruence Closure

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    53/96

    Bidirectional Closure instead of Congruence Closure [Oppen 1980]

    For the following decision procedures we will use the bidirectional

    closure, instead of the congruence closure!

    Idea

    cons(x, y) = cons(z, t) x = z y = t

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    The Congruence Closure R

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    54/96

    R is the unique minimal extension of R with the followingproperties:

    R is an equivalence relation

    Two vertices u,v with equal (nonzero) outdegree:

    (u, v) R

    (u[i], v[i]) R i [1; (u)]

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    The Unification Closure R

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    55/96

    R is the unique minimal extension of R with the followingproperties:

    R is an equivalence relation

    Two vertices u,v with equal (nonzero) outdegree:

    (u, v) R

    (u[i], v[i]) R i [1; (u)]

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    The Bidirectional Closure R

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    56/96

    Theorem [Oppen 1980]

    R is the unique minimal extension of R with the followingproperties:

    R is an equivalence relation

    Two vertices u,v with equal (nonzero) outdegree:

    (u, v) R

    (u[i], v[i]) R i [1; (u)]

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Oppens Decision Procedure for acyclic A

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    57/96

    Input: : q1 = r1 ... qk = rk s1 = t1 ... sl = tl

    Task: Check satisfiability of

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Oppens Decision Procedure for acyclic A

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    58/96

    Input: : q1 = r1 ... qk = rk s1 = t1 ... sl = tl

    Task: Check satisfiability of

    Algorithm 11 Step 1: Construct the DAG G of

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Oppens Decision Procedure for acyclic A

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    59/96

    Input: : q1 = r1 ... qk = rk s1 = t1 ... sl = tl

    Task: Check satisfiability of

    Algorithm 11 Step 1: Construct the DAG G of

    2 Step 2: Compute R of R = {(qi, ri)|1 i k}.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Oppens Decision Procedure for acyclic A

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    60/96

    Input: : q1 = r1 ... qk = rk s1 = t1 ... sl = tl

    Task: Check satisfiability of

    Algorithm 11 Step 1: Construct the DAG G of

    2 Step 2: Compute R of R = {(qi, ri)|1 i k}.

    3 Return UNSATISFIABLE if i(si, ti) R;

    Return SATISFIABLE otherwise.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Problem for Cyclic Data Structures

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    61/96

    In our setting

    If x is NOT an -term, then si

    (x) = x

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Problem for Cyclic Data Structures

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    62/96

    In our setting

    If x is NOT an -term, then si

    (x) = x

    ComplicationWe dont know a priori wether s(x) is a proper subterm of x.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Problem for Cyclic Data Structures

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    63/96

    In our setting

    If x is NOT an -term, then si

    (x) = x

    ComplicationWe dont know a priori wether s(x) is a proper subterm of x.

    Solution for Complication

    We have to guess the type of all terms occuring inside an selectorfunction before applying the algorithm.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Oppens Decision Procedure for cyclic A

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    64/96

    Input : q1 = r1 ... qk = rk s1 = t1 ... sl = tl

    Task: Check satisfiability of

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Oppens Decision Procedure for cyclic A

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    65/96

    Input : q1 = r1 ... qk = rk s1 = t1 ... sl = tl

    Task: Check satisfiability of

    Algorithm 2

    1 Step 1:Guess a type completion

    of and simplify selectorterms accordingly.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Oppens Decision Procedure for cyclic A

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    66/96

    Input : q1 = r1 ... qk = rk s1 = t1 ... sl = tl

    Task: Check satisfiability of

    Algorithm 2

    1 Step 1:Guess a type completion

    of and simplify selectorterms accordingly.

    2 Step 2: Call Algorithm 1 on

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Example Application of Algorithm 2

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    67/96

    Example

    cons(y,z) = cons(cdr(x),z) cons(car(x),y) = x

    Unification Closure

    (u, v) R

    (u[i], v[i]) Ri [1; (u)]

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    The Structure B

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    68/96

    Overview - Where Are We Now?

    Presburger Arithmetic

    Decision Procedure

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    The Structure B

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    69/96

    Overview - Where Are We Now?

    Presburger Arithmetic

    Decision Procedure

    Theory of recursive data structure

    Decision Procedure

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    The Structure B

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    70/96

    Overview - Where Are We Now?

    Presburger Arithmetic

    Decision Procedure

    Theory of recursive data structure

    Decision Procedure

    Extension of Nelsons and Oppens method in the presence oflength |.|

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    The Structure B

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    71/96

    Overview - Where Are We Now?

    Presburger Arithmetic

    Decision Procedure

    Theory of recursive data structure

    Decision Procedure

    Extension of Nelsons and Oppens method in the presence oflength |.|

    The Structure of the Integrated Theory

    B = (

    A;AZ; |.| :

    Z)

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    The Structure B

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    72/96

    Overview - Where Are We Now?

    Presburger Arithmetic

    Decision Procedure

    Theory of recursive data structure

    Decision Procedure

    Extension of Nelsons and Oppens method in the presence oflength |.|

    The Structure of the Integrated Theory

    B = (

    A;AZ; |.| :

    Z)

    For any atom a, |a| = 1

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    The Structure B

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    73/96

    Overview - Where Are We Now?

    Presburger Arithmetic

    Decision Procedure

    Theory of recursive data structure

    Decision Procedure

    Extension of Nelsons and Oppens method in the presence oflength |.|

    The Structure of the Integrated Theory

    B = (

    A;AZ; |.| :

    Z)

    For any atom a, |a| = 1

    For a term (t1, ..., tk), |(t1, ..., tk)| =

    k

    i=1 |ti|.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Why not Nelson & Oppen?

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    74/96

    Why?

    We want can not combine this with Nelsons and Oppens method

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    75/96

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Why not Nelson & Oppen?

  • 8/9/2019 Decision Procedures for Recursive Data Structures

    76/96

    Why?

    We want can not combine this with Nelsons and Oppens method

    Consider BList,

    : x = cons(car(y),y) and Z :|x|

  • 8/9/2019 Decision Procedures for Recursive Data Structures

    77/96

    IdeaExplicitly compute the hidden constraints!

    Length constraint :

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Induced Length Constraint

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    78/96

    IdeaExplicitly compute the hidden constraints!

    Length constraint :

    is sound, if satisfying of , || is a satisfyingassignment for .

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Induced Length Constraint

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    79/96

    IdeaExplicitly compute the hidden constraints!

    Length constraint :

    is complete, if whenever is satisfiable, for any satisfyingassignment of there exists a satisfying assignment

    of s.t. || = .

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Induced Length Constraint

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    80/96

    IdeaExplicitly compute the hidden constraints!

    Length constraint :

    is induced by , if is sound & complete.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Satisfiability ofB

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    81/96

    Main Theorem

    Let be in the form Z . Let be the induced lengthconstraint with respect to .

    is satisfiable in B

    Z is satisfiable in AZ and is satisfiable in A

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Predicates based on the DAG

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    82/96

    How to compute the induced length constraints?

    Tree(t) : x1, ..., xn 0 (|t| = (

    n

    i=1(di 1)xi) + 1)

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Predicates based on the DAG

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    83/96

    How to compute the induced length constraints?

    Tree(t) : x1, ..., xn 0 (|t| = (

    n

    i=1(di 1)xi) + 1)

    Node(t, t) : |t| =()

    i=1 |ti|

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Predicates based on the DAG

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    84/96

    How to compute the induced length constraints?

    Tree(t) : x1, ..., xn 0 (|t| = (

    n

    i=1(di 1)xi) + 1)

    Node(t, t) : |t| =()

    i=1 |ti|

    Tree(t) : t(Node(t, t) ()

    i=1 Tree(ti))

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Constructing Length Constraint

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    85/96

    Algorithm 3 (Construction of in B)

    Let be (type-complete) data constraint. G the DAG of andR bidirectional closure.

    From initial state = add the following

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Constructing Length Constraint

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    86/96

    Algorithm 3 (Construction of in B)

    Let be (type-complete) data constraint. G the DAG of andR bidirectional closure.

    From initial state = add the following

    |t| = 1 if t is an atom

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Constructing Length Constraint

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    87/96

    Algorithm 3 (Construction of in B)

    Let be (type-complete) data constraint. G the DAG of andR bidirectional closure.

    From initial state = add the following

    |t| = 1 if t is an atom

    |t| = |s|, if (t, s) R

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Constructing Length Constraint

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    88/96

    Algorithm 3 (Construction of in B)

    Let be (type-complete) data constraint. G the DAG of andR bidirectional closure.

    From initial state = add the following

    |t| = 1 if t is an atom

    |t| = |s|, if (t, s) R

    Tree(t) if t is an untyped leaf vertex.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Constructing Length Constraint

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    89/96

    Algorithm 3 (Construction of in B)Let be (type-complete) data constraint. G the DAG of andR bidirectional closure.

    From initial state = add the following

    |t| = 1 if t is an atom

    |t| = |s|, if (t, s) R

    Tree(t) if t is an untyped leaf vertex.

    Node

    (t, t) if t is an -typed vertex with children t

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Constructing Length Constraint

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    90/96

    Algorithm 3 (Construction of in B)Let be (type-complete) data constraint. G the DAG of andR bidirectional closure.

    From initial state = add the following

    |t| = 1 if t is an atom

    |t| = |s|, if (t, s) R

    Tree(t) if t is an untyped leaf vertex.

    Node

    (t, t) if t is an -typed vertex with children t

    Tree(t) if t is an -typed leaf vertex.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Some Deductions

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    91/96

    Proposition 2

    obtained by Algorithm 3 is expressible in a quantifier-freePresburger formula linear in the size of .

    Theorem 1

    obtained by Algorithm 3 is the induced length constraint of .

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Decision Procedure for a Quantifier-Free B

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    92/96

    Input: Z.

    1 Guess a type completion

    of .

    2

    Call Algorithm 1 on

    .Return FAIL if

    is unsatisfiable; continue otherwise.

    3 Construct from G

    using Algorithm 3.

    Return SUCCESS if is satisfiable and Z is satisifiable.

    Return FAIL otherwise.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Example Application of Algorithm 4

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    93/96

    Example

    x = cons(car(y),y) |cons(car(y),y)| < 2|car(x)|.

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Some Final Remarks

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    94/96

    In Theories were quantifiers (,) occurs, we can usequantifier-elimination to get rid of the quantifiers!

    Application on theories with finite number of atoms is alsopossible, but its far more complicated!

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    95/96

    Thank you for your attention!

    Motivation Problem-Outline The structures Recursive Data Structures The Integrated Theory

    Literature

    http://find/http://goback/
  • 8/9/2019 Decision Procedures for Recursive Data Structures

    96/96

    Zhang, T.; Sipma H.B.; Manna,Z.:

    Decision Procedures for Recursive Data Structures with

    Integer Constraints.Springer-Verlag, 2004.

    Oppen,D.C:

    Reasoning About Recursively Defined Data Structures.Journal of the Association for Computing Machinery (Vol. 27),1980

    Nelson,G; Oppen, D.C:

    Fast Decision Procedures Based on CongruenceClosure.Journal of the Association for Computing Machinery (Vol. 27),1980

    http://find/http://goback/