Transcript
Page 1: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

Page 2: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

Semantic subtyping in a nutshell

• Frisch, Castagna, Benzaken, Semantic Subtyping, 2008

t à sdef⇐⇒ JtK ⊆ JsK

+ Intuition

Jt ∧ sK = JtK∩ JsK Jt ∨ sK = JtK∪ JsK

+ ExpressivenessJ¬tK = V \ JtK

+ Precisiont 6à s implies v ∈ JtK \ JsK

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

Page 3: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

Subtyping for session types

• Gay, Hole, Subtyping for session types in the picalculus, 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 oftype S is expected, or. . .

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

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

Page 4: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

Subtyping for session types

• Gay, Hole, Subtyping for session types in the picalculus, 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 oftype S is expected, or. . .

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

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

Page 5: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

Page 6: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

Page 7: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

Is this session is “OK”?

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

Page 8: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

Example: multi-party session (and subtyping)

q!a

+ 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 is “OK”?Semantic Subtyping for Session Types (L. Padovani) BTW’11 5 / 20

Page 9: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

How to fix subtyping

Definition (OK session)

• p1 : T1 | · · · | pn : Tn OK ifp1 : T1 | · · · | pn : Tn =⇒ p1 : T ′1 | · · · | pn : T ′n impliesp1 : T ′1 | · · · | pn : T ′n =⇒ p1 : end | · · · | pn : end

Definition (semantic subtyping)

• JT K = {M | (p : T |M) is OK}• T à S iff JT K ⊆ JSK

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

Page 10: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

How to fix subtyping

Definition (OK session)

• p1 : T1 | · · · | pn : Tn OK ifp1 : T1 | · · · | pn : Tn =⇒ p1 : T ′1 | · · · | pn : T ′n impliesp1 : T ′1 | · · · | pn : T ′n =⇒ p1 : end | · · · | pn : end

Definition (semantic subtyping)

• JT K = {M | (p : T |M) is OK}• T à S iff JT K ⊆ JSK

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

Page 11: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

How to fix subtyping

Definition (OK session)

• p1 : T1 | · · · | pn : Tn OK ifp1 : T1 | · · · | pn : Tn =⇒ p1 : T ′1 | · · · | pn : T ′n impliesp1 : T ′1 | · · · | pn : T ′n =⇒ p1 : end | · · · | pn : end

Definition (semantic subtyping)

• JT K = {M | (p : T |M) is OK}• T à S iff JT K ⊆ JSK

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

Page 12: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

How to fix subtyping

Definition (OK session)

• p1 : T1 | · · · | pn : Tn OK ifp1 : T1 | · · · | pn : Tn =⇒ p1 : T ′1 | · · · | pn : T ′n impliesp1 : T ′1 | · · · | pn : T ′n =⇒ p1 : end | · · · | pn : end

Definition (semantic subtyping)

• JT K = {M | (p : T |M) is OK}• T à S iff JT K ⊆ JSK

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

Page 13: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

Dilemma

àU versus à

• àU is intuitive but unsound

• à is sound but obscure

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

Page 14: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

(Fair) subtyping = (fair) testing preorder

• P passes test T

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

“Unfair” testing

• De Nicola, Hennessy, Testing equivalences forprocesses, 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

Page 15: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

àU and à are incomparable

T = p!a.T T à S T 6àU SS = q?b.S S à T S 6àU T

viable

not viable fail ≶ T ≶ S ≶ · · ·

à ⊆ àU

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

Page 16: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

àU and à are incomparable

T = p!a.T T à S T 6àU SS = q?b.S S à T S 6àU T

viable

not viable fail ≶ T ≶ S ≶ · · ·

à ⊆ àU

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

Page 17: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

A normal form for session types

T is in normal form if either

• T = fail, or

• end ∈ trees(S) for every S ∈ trees(T )

PropositionFor every T there exists S ≶ T in nf

TheoremLet T , S 6= fail be in nf. Then T à S implies T àU S

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

Page 18: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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 Y=⇒ end | end

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

Page 19: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

Page 20: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

Page 21: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

Rule of thumb

If

• !a.T does not occur in a loop

or

• !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 fromp because p can autonomously exit `

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

Page 22: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

Behavioral difference

TheoremLet T , S be in nf and T àU S.Then T − S viable iff R | T OK and R | S Y=⇒ 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

Page 23: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

TheoremT à S iff nf(T ) àA nf(S)

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

Page 24: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

TheoremT à S iff nf(T ) àA nf(S)

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

Page 25: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

TheoremT à S iff nf(T ) àA nf(S)

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

Page 26: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

TheoremT à S iff nf(T ) àA nf(S)

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

Page 27: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

Page 28: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

More on semantic subtyping

• Padovani, Session Types = Intersection Types + UnionTypes, 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

Page 29: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

Page 30: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

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

Page 31: Semantic Subtyping for Session Typessimon/BehaviouralTypes/slides/...Semantic Subtyping for Session Types Luca Padovani Dipartimento di Informatica, Università di Torino BTW’11

thank you

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


Top Related