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

date post

19-Nov-2020Category

## Documents

view

1download

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

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

● ● ○ ○ ○

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