Decidability and Complexity of Tree Share Formulas hobor/Publications/2016/... Decidability and...

Click here to load reader

  • date post

    19-Nov-2020
  • Category

    Documents

  • view

    1
  • download

    0

Embed Size (px)

Transcript of Decidability and Complexity of Tree Share Formulas hobor/Publications/2016/... Decidability and...

  • Decidability and Complexity of Tree Share Formulas

    Decidability and Complexity of Tree Share Formulas

    Xuan Bach Le1 Aquinas Hobor1 Anthony W. Lin2

    1 National University of Singapore 2 University of Oxford

    December 14, 2016

    1 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    tree(x , τ) ∧WRITE(τ)

    tree(x , τ1) ∧ READ(τ1) tree(x , τ2) ∧ READ(τ2)

    tree(x , τ) ∧WRITE(τ)

    2 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Shares

    Shares are embedded into separation logic to reason about resource accounting:

    addr τ1⊕τ2↦ val ⇔ addr τ1↦ val ⋆ addr τ2↦ val

    Allow resources to be split and shared in large scale:

    tree(`, τ) def= (` = null ∧ emp) ∨ ∃`l , `r . (` τ↦ (`l , `r) ⋆ tree(`l , τ) ⋆ tree(`r , τ))

    tree(`, τ1 ⊕ τ2) ⇔ tree(`, τ1) ⋆ tree(`, τ2)

    Share policies to reason about permissions for single writer and multiple readers:

    WRITE(τ) READ(τ)

    Write- Read

    READ(τ) ∃τ1, τ2. τ1 ⊕ τ2 = τ ∧

    READ(τ1) ∧ READ(τ2)

    Split- Read

    3 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Shares

    Shares are embedded into separation logic to reason about resource accounting:

    addr τ1⊕τ2↦ val ⇔ addr τ1↦ val ⋆ addr τ2↦ val

    Allow resources to be split and shared in large scale:

    tree(`, τ) def= (` = null ∧ emp) ∨ ∃`l , `r . (` τ↦ (`l , `r) ⋆ tree(`l , τ) ⋆ tree(`r , τ))

    tree(`, τ1 ⊕ τ2) ⇔ tree(`, τ1) ⋆ tree(`, τ2)

    Share policies to reason about permissions for single writer and multiple readers:

    WRITE(τ) READ(τ)

    Write- Read

    READ(τ) ∃τ1, τ2. τ1 ⊕ τ2 = τ ∧

    READ(τ1) ∧ READ(τ2)

    Split- Read

    3 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Shares

    Shares are embedded into separation logic to reason about resource accounting:

    addr τ1⊕τ2↦ val ⇔ addr τ1↦ val ⋆ addr τ2↦ val

    Allow resources to be split and shared in large scale:

    tree(`, τ) def= (` = null ∧ emp) ∨ ∃`l , `r . (` τ↦ (`l , `r) ⋆ tree(`l , τ) ⋆ tree(`r , τ))

    tree(`, τ1 ⊕ τ2) ⇔ tree(`, τ1) ⋆ tree(`, τ2)

    Share policies to reason about permissions for single writer and multiple readers:

    WRITE(τ) READ(τ)

    Write- Read

    READ(τ) ∃τ1, τ2. τ1 ⊕ τ2 = τ ∧

    READ(τ1) ∧ READ(τ2)

    Split- Read

    3 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Shares

    Shares enable resource reasoning in concurrent programming

    Rational numbers [Boyland (2003)]: disjointness problem makes tree split equivalence false: ¬(tree(`, τ1 ⊕ τ2)⇐ tree(`, τ1) ⋆ tree(`, τ2)) Subsets of natural numbers [Parkinson (2005)]

    Finite sets: recursion depth is finite Infinite sets: intersections may not be in the model

    4 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Shares

    Shares enable resource reasoning in concurrent programming

    Rational numbers [Boyland (2003)]: disjointness problem makes tree split equivalence false: ¬(tree(`, τ1 ⊕ τ2)⇐ tree(`, τ1) ⋆ tree(`, τ2))

    Subsets of natural numbers [Parkinson (2005)]

    Finite sets: recursion depth is finite Infinite sets: intersections may not be in the model

    4 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Shares

    Shares enable resource reasoning in concurrent programming

    Rational numbers [Boyland (2003)]: disjointness problem makes tree split equivalence false: ¬(tree(`, τ1 ⊕ τ2)⇐ tree(`, τ1) ⋆ tree(`, τ2)) Subsets of natural numbers [Parkinson (2005)]

    Finite sets: recursion depth is finite Infinite sets: intersections may not be in the model

    4 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Tree Share Definition

    A tree share τ ∈ T is a boolean binary tree equipped with the reduction rules R1 and R2 (their inverses are E1,E2 resp.):

    τ def= ○ ∣ ● ∣ τ τ R1 ∶ ● ●↦ ● R2 ∶ ○ ○↦ ○

    The tree domain T contains canonical trees which are irreducible with respect to the reduction rules.

    ● ● ○ ○ ○

    Ri↦ ● ○ ○ Ri↦ ● ○

    ○ is the empty tree, and ● the full tree. READ(τ) def= τ ≠ ○ WRITE(τ) def= τ = ●

    5 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Tree Share Definition

    A tree share τ ∈ T is a boolean binary tree equipped with the reduction rules R1 and R2 (their inverses are E1,E2 resp.):

    τ def= ○ ∣ ● ∣ τ τ R1 ∶ ● ●↦ ● R2 ∶ ○ ○↦ ○

    The tree domain T contains canonical trees which are irreducible with respect to the reduction rules.

    ● ● ○ ○ ○

    Ri↦ ● ○ ○ Ri↦ ● ○

    ○ is the empty tree, and ● the full tree. READ(τ) def= τ ≠ ○ WRITE(τ) def= τ = ●

    5 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Tree Share Definition

    A tree share τ ∈ T is a boolean binary tree equipped with the reduction rules R1 and R2 (their inverses are E1,E2 resp.):

    τ def= ○ ∣ ● ∣ τ τ R1 ∶ ● ●↦ ● R2 ∶ ○ ○↦ ○

    The tree domain T contains canonical trees which are irreducible with respect to the reduction rules.

    ● ● ○ ○ ○

    Ri↦ ● ○ ○ Ri↦ ● ○

    ○ is the empty tree, and ● the full tree.

    READ(τ) def= τ ≠ ○ WRITE(τ) def= τ = ●

    5 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Tree Share Definition

    A tree share τ ∈ T is a boolean binary tree equipped with the reduction rules R1 and R2 (their inverses are E1,E2 resp.):

    τ def= ○ ∣ ● ∣ τ τ R1 ∶ ● ●↦ ● R2 ∶ ○ ○↦ ○

    The tree domain T contains canonical trees which are irreducible with respect to the reduction rules.

    ● ● ○ ○ ○

    Ri↦ ● ○ ○ Ri↦ ● ○

    ○ is the empty tree, and ● the full tree. READ(τ) def= τ ≠ ○ WRITE(τ) def= τ = ●

    5 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Tree Share Operators

    The complement 2:

    ●1 ○2 ○3 ¬↦ ○1 ●2 ●3

    The Boolean function union ⊔ and intersection ⊓ operator:

    ● ○ ● ⊔ ○ ● ○

    Ei↦ ●1 ●2 ○3 ●4

    ⊔ ○1 ●2 ○3 ○4

    ∨↦ ●1 ●2 ○3 ●4

    Ri↦ ● ○ ●

    ● ○ ● ⊓ ○ ● ○

    Ei↦ ●1 ●2 ○3 ●4

    ⊓ ○1 ●2 ○3 ○4

    ∧↦ ○1 ●2 ○3 ○4

    Ri↦ ○ ● ○

    6 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Tree Share Operators

    The complement 2:

    ●1 ○2 ○3 ¬↦ ○1 ●2 ●3

    The Boolean function union ⊔ and intersection ⊓ operator:

    ● ○ ● ⊔ ○ ● ○

    Ei↦ ●1 ●2 ○3 ●4

    ⊔ ○1 ●2 ○3 ○4

    ∨↦ ●1 ●2 ○3 ●4

    Ri↦ ● ○ ●

    ● ○ ● ⊓ ○ ● ○

    Ei↦ ●1 ●2 ○3 ●4

    ⊓ ○1 ●2 ○3 ○4

    ∧↦ ○1 ●2 ○3 ○4

    Ri↦ ○ ● ○

    6 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Tree Share Operators

    The complement 2:

    ●1 ○2 ○3 ¬↦ ○1 ●2 ●3

    The Boolean function union ⊔ and intersection ⊓ operator:

    ● ○ ● ⊔ ○ ● ○

    Ei↦ ●1 ●2 ○3 ●4

    ⊔ ○1 ●2 ○3 ○4

    ∨↦ ●1 ●2 ○3 ●4

    Ri↦ ● ○ ●

    ● ○ ● ⊓ ○ ● ○

    Ei↦ ●1 ●2 ○3 ●4

    ⊓ ○1 ●2 ○3 ○4

    ∧↦ ○1 ●2 ○3 ○4

    Ri↦ ○ ● ○

    6 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Tree Share Operators

    The complement 2:

    ●1 ○2 ○3 ¬↦ ○1 ●2 ●3

    The Boolean function union ⊔ and intersection ⊓ operator:

    ● ○ ● ⊔ ○ ● ○

    Ei↦ ●1 ●2 ○3 ●4

    ⊔ ○1 ●2 ○3 ○4

    ∨↦ ●1 ●2 ○3 ●4

    Ri↦ ● ○ ●

    ● ○ ● ⊓ ○ ● ○

    Ei↦ ●1 ●2 ○3 ●4

    ⊓ ○1 ●2 ○3 ○4

    ∧↦ ○1 ●2 ○3 ○4

    Ri↦ ○ ● ○

    6 / 30

  • Decidability and Complexity of Tree Share Formulas

    Introduction

    Tree Share Operators

    The complement 2:

    ●1 ○2 ○3 ¬↦ ○1 ●2 ●3

    The Boolean function union ⊔ and intersection ⊓ operator:

    ● ○ ● ⊔ ○ ● ○

    Ei↦ ●1 ●2 ○3 ●4

    ⊔ ○1 ●2 ○3 ○4

    ∨↦ ●1 ●2 ○3 ●4

    Ri↦ ● ○ ●

    ● ○ ● ⊓ ○ ● ○

    Ei↦ ●1 ●2 ○3 ●4

    ⊓ ○1 ●2 ○3 ○4

    ∧↦ ○1 ●2 ○3 ○4

    Ri↦ ○ ● ○

    6 / 30

  • Decidability and Co