Semantic Subtyping for Session Types Luca Padovani Dipartimento di - - PowerPoint PPT Presentation

semantic subtyping for session types
SMART_READER_LITE
LIVE PREVIEW

Semantic Subtyping for Session Types Luca Padovani Dipartimento di - - PowerPoint PPT Presentation

Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Universit di Torino BTW11 Semantic Subtyping for Session Types (L. Padovani) BTW11 1 / 20 Semantic subtyping in a nutshell Frisch, Castagna, Benzaken,


slide-1
SLIDE 1

Semantic Subtyping for Session Types

Luca Padovani

Dipartimento di Informatica, Università di Torino

BTW’11

Semantic Subtyping for Session Types (L. Padovani) BTW’11 1 / 20

slide-2
SLIDE 2

Semantic subtyping in a nutshell

  • Frisch, Castagna, Benzaken, Semantic Subtyping, 2008

t s

def

⇐ ⇒ t ⊆ s + Intuition

t ∧ s = t ∩ s t ∨ s = t ∪ s

+ Expressiveness

¬t = V \ t

+ Precision t s implies v ∈ t \ s

Semantic Subtyping for Session Types (L. Padovani) BTW’11 2 / 20

slide-3
SLIDE 3

Subtyping for session types

  • Gay, Hole, Subtyping for session types in the pi

calculus, 2005 end U end Ti U Si

(i∈I)

  • i∈I

?ai.Ti U

  • i∈I∪J

?ai.Si

Ti U Si

(i∈I)

  • i∈I∪J

!ai.Ti U

  • i∈I

!ai.Si

T U S means. . .

  • it is safe to use a channel of type T where a channel of

type S is expected, or. . .

  • it is safe to use a process that behaves as S where a

process that behaves as T is expected

Semantic Subtyping for Session Types (L. Padovani) BTW’11 3 / 20

slide-4
SLIDE 4

Subtyping for session types

  • Gay, Hole, Subtyping for session types in the pi

calculus, 2005 end U end Ti U Si

(i∈I)

  • i∈I

p?ai.Ti U

  • i∈I∪J

p?ai.Si Ti U Si

(i∈I)

  • i∈I∪J

p!ai.Ti U

  • i∈I

p!ai.Si T U S means. . .

  • it is safe to use a channel of type T where a channel of

type S is expected, or. . .

  • it is safe to use a process that behaves as S where a

process that behaves as T is expected

Semantic Subtyping for Session Types (L. Padovani) BTW’11 3 / 20

slide-5
SLIDE 5

Example: multi-party session

⊕ ⊕ end q!a q!b r!c + end p?a p?b + end p?c

  • p : T = q!a.T ⊕ q!b.r!a.end
  • q : S = p?a.S + p?b.end
  • r : p?c.end

Is this session “OK”?

Semantic Subtyping for Session Types (L. Padovani) BTW’11 4 / 20

slide-6
SLIDE 6

Example: multi-party session

⊕ ⊕ end q!a q!b r!c + end p?a p?b + end p?c

  • p : T = q!a.T ⊕ q!b.r!a.end
  • q : S = p?a.S + p?b.end
  • r : p?c.end

Is this session “OK”? Yes, under a fairness assumption

Semantic Subtyping for Session Types (L. Padovani) BTW’11 4 / 20

slide-7
SLIDE 7

Example: multi-party session (and subtyping)

⊕ ⊕ end q!a q!b r!c + end p?a p?b + end p?c

  • p : T = q!a.T ⊕ q!b.r!a.end
  • q : S = p?a.S + p?b.end
  • r : p?c.end

Semantic Subtyping for Session Types (L. Padovani) BTW’11 5 / 20

slide-8
SLIDE 8

Example: multi-party session (and subtyping)

⊕ q!a + end p?a p?b + end p?c

  • p : T = q!a.T
  • q : S = p?a.S + p?b.end
  • r : p?c.end

Is this session is “OK”?

Semantic Subtyping for Session Types (L. Padovani) BTW’11 5 / 20

slide-9
SLIDE 9

How to fix subtyping

Definition (OK session)

  • p1 : T1 | · · · | pn : Tn OK if

p1 : T1 | · · · | pn : Tn ⇒ p1 : T ′

1 | · · · | pn : T ′ n implies

p1 : T ′

1 | · · · | pn : T ′ n ⇒ p1 : end | · · · | pn : end

Definition (semantic subtyping)

  • T = {M

| (p : T | M) is OK}

  • T S

iff

T ⊆ S

Semantic Subtyping for Session Types (L. Padovani) BTW’11 6 / 20

slide-10
SLIDE 10

How to fix subtyping

Definition (OK session)

  • p1 : T1 | · · · | pn : Tn OK if

p1 : T1 | · · · | pn : Tn ⇒ p1 : T ′

1 | · · · | pn : T ′ n implies

p1 : T ′

1 | · · · | pn : T ′ n ⇒ p1 : end | · · · | pn : end

Definition (semantic subtyping)

  • T = {M

| (p : T | M) is OK}

  • T S

iff

T ⊆ S

Semantic Subtyping for Session Types (L. Padovani) BTW’11 6 / 20

slide-11
SLIDE 11

How to fix subtyping

Definition (OK session)

  • p1 : T1 | · · · | pn : Tn OK if

p1 : T1 | · · · | pn : Tn ⇒ p1 : T ′

1 | · · · | pn : T ′ n implies

p1 : T ′

1 | · · · | pn : T ′ n ⇒ p1 : end | · · · | pn : end

Definition (semantic subtyping)

  • T = {M

| (p : T | M) is OK}

  • T S

iff

T ⊆ S

Semantic Subtyping for Session Types (L. Padovani) BTW’11 6 / 20

slide-12
SLIDE 12

How to fix subtyping

Definition (OK session)

  • p1 : T1 | · · · | pn : Tn OK if

p1 : T1 | · · · | pn : Tn ⇒ p1 : T ′

1 | · · · | pn : T ′ n implies

p1 : T ′

1 | · · · | pn : T ′ n ⇒ p1 : end | · · · | pn : end

Definition (semantic subtyping)

  • T = {M

| (p : T | M) is OK}

  • T S

iff

T ⊆ S

Semantic Subtyping for Session Types (L. Padovani) BTW’11 6 / 20

slide-13
SLIDE 13

Dilemma

U versus

  • U is intuitive but unsound
  • is sound but obscure

Semantic Subtyping for Session Types (L. Padovani) BTW’11 7 / 20

slide-14
SLIDE 14

(Fair) subtyping = (fair) testing preorder

  • P passes test T
  • P ⊑ Q iff P passes test T implies Q passes test T

“Unfair” testing

  • De Nicola, Hennessy, Testing equivalences for

processes, 1983

  • . . .

Fair testing

  • Cleaveland, Natarajan, Divergence and fair testing, 1995
  • Rensink, Vogler, Fair testing, 2007

Semantic Subtyping for Session Types (L. Padovani) BTW’11 8 / 20

slide-15
SLIDE 15

U and are incomparable

T = p!a.T T

  • S

T U S S = q?b.S S

  • T

S U T

Semantic Subtyping for Session Types (L. Padovani) BTW’11 9 / 20

slide-16
SLIDE 16

U and are incomparable

T = p!a.T T

  • S

T U S S = q?b.S S

  • T

S U T

viable

not viable fail ≶ T ≶ S ≶ · · ·

⊆ U

Semantic Subtyping for Session Types (L. Padovani) BTW’11 9 / 20

slide-17
SLIDE 17

A normal form for session types

T is in normal form if either

  • T = fail, or
  • end ∈ trees(S) for every S ∈ trees(T)

Proposition

For every T there exists S ≶ T in nf

Theorem

Let T, S = fail be in nf. Then T S implies T U S

Semantic Subtyping for Session Types (L. Padovani) BTW’11 10 / 20

slide-18
SLIDE 18

Experiment 1

⊕ end

!a !b

⊕ ⊕ end

!a !b !a

T = !a.T ⊕ !b.end S = !a.!a.S ⊕ !b.end Is there a context R such that

  • R | T is OK
  • R | S ⇒ end | end

?

Semantic Subtyping for Session Types (L. Padovani) BTW’11 11 / 20

slide-19
SLIDE 19

Experiment 2

⊕ + end

!a, !b ?a ?b

⊕ + ⊕ + end

!a ?a ?b !a, !b ?b ?a

Semantic Subtyping for Session Types (L. Padovani) BTW’11 12 / 20

slide-20
SLIDE 20

Experiment 2

⊕ + end

!a, !b ?a ?b

⊕ + ⊕ + end

!a ?a ?b !a, !b ?b ?a

+ ⊕ ⊕ end + ⊕

?a ?b !b !a ?a, ?b !a

Semantic Subtyping for Session Types (L. Padovani) BTW’11 12 / 20

slide-21
SLIDE 21

Rule of thumb

If

  • !a.T does not occur in a loop
  • r
  • !a.T occurs in a loop ℓ of p, and
  • there exists an exit path in ℓ that starts from a ⊕ node,

then

  • !a.T can be safely pruned

Rationale

  • no context can rely on the eventual observation of !a from

p because p can autonomously exit ℓ

Semantic Subtyping for Session Types (L. Padovani) BTW’11 13 / 20

slide-22
SLIDE 22

Behavioral difference

Theorem

Let T, S be in nf and T U S. Then T − S viable iff R | T OK and R | S ⇒ end | end for some R end − end = fail

  • i∈I

p?ai.Ti −

  • i∈I∪J

p?ai.Si =

  • i∈I

p?ai.(Ti − Si)

  • i∈I∪J

p!ai.Ti −

  • i∈I

p!ai.Si =

  • i∈I

p!ai.(Ti − Si) ⊕

  • j∈J

p!aj.Tj

Semantic Subtyping for Session Types (L. Padovani) BTW’11 14 / 20

slide-23
SLIDE 23

Fair subtyping, at last

fail A T end A end Ti A Si

(i∈I)

  • i∈I

p?ai.Ti A

  • i∈I∪J

p?ai.Si Ti A Si

(i∈I)

nf(T − S) = fail T =

  • i∈I∪J

p!ai.Ti A

  • i∈I

p!ai.Si = S

Theorem

T S iff nf(T) A nf(S)

Semantic Subtyping for Session Types (L. Padovani) BTW’11 15 / 20

slide-24
SLIDE 24

Fair subtyping, at last

fail A T end A end Ti A Si

(i∈I)

  • i∈I

p?ai.Ti A

  • i∈I∪J

p?ai.Si Ti A Si

(i∈I)

nf(T − S) = fail T =

  • i∈I∪J

p!ai.Ti A

  • i∈I

p!ai.Si = S

Theorem

T S iff nf(T) A nf(S)

Semantic Subtyping for Session Types (L. Padovani) BTW’11 15 / 20

slide-25
SLIDE 25

Fair subtyping, at last

fail A T end A end Ti A Si

(i∈I)

  • i∈I

p?ai.Ti A

  • i∈I∪J

p?ai.Si Ti A Si

(i∈I)

nf(T − S) = fail T =

  • i∈I∪J

p!ai.Ti A

  • i∈I

p!ai.Si = S

Theorem

T S iff nf(T) A nf(S)

Semantic Subtyping for Session Types (L. Padovani) BTW’11 15 / 20

slide-26
SLIDE 26

Fair subtyping, at last

fail A T end A end Ti A Si

(i∈I)

  • i∈I

p?ai.Ti A

  • i∈I∪J

p?ai.Si Ti A Si

(i∈I)

nf(T − S) = fail T =

  • i∈I∪J

p!ai.Ti A

  • i∈I

p!ai.Si = S

Theorem

T S iff nf(T) A nf(S)

Semantic Subtyping for Session Types (L. Padovani) BTW’11 15 / 20

slide-27
SLIDE 27

Fair testing vs fair subtyping

Fair testing

  • Cleaveland, Natarajan, Divergence and fair testing, 1995
  • Rensink, Vogler, Fair testing, 2007

− denotational (= obscure) characterization − no complete deduction system − exponential Fair subtyping + operational (= hopefully less obscure) characterization (and maybe it can be further simplified) + complete deduction system + polynomial

Semantic Subtyping for Session Types (L. Padovani) BTW’11 16 / 20

slide-28
SLIDE 28

More on semantic subtyping

  • Padovani, Session Types = Intersection Types + Union

Types, ITRS 2010

!a.T ⊕ !b.S

⇐ ⇒

!a.T ∧ !b.S ?a.T + ?b.S

⇐ ⇒

?a.T ∨ ?b.S ?a.T ∨ ?a.S ≶ ?a.(T ∨ S)

Semantic Subtyping for Session Types (L. Padovani) BTW’11 17 / 20

slide-29
SLIDE 29

More on fair subtyping

  • Padovani, Fair Subtyping for Multi-Party Session Types,

COORDINATION 2011 + formal definitions and proofs + algorithms (viability, normal form, subtyping)

Semantic Subtyping for Session Types (L. Padovani) BTW’11 18 / 20

slide-30
SLIDE 30

Future work: fair type checking

T = !a.T ⊕ !b.end P = u!a.P u : T ⊢ P (T-Output) u : !a.T ⊢ u!a.P T !a.T (T-Narrow) u : T ⊢ P

Semantic Subtyping for Session Types (L. Padovani) BTW’11 19 / 20

slide-31
SLIDE 31

thank you

Semantic Subtyping for Session Types (L. Padovani) BTW’11 20 / 20