contracts for mobile processes · contracts for mobile processes giuseppe castagna luca padovani...

39
Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit´ e Paris Diderot Istituto di Scienze e Tecnologie dell’Informazione, Universit` a di Urbino Parsec meeting, January 26th, 2009 [slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani) Parsec meeting, January 26th, 2009 1/ 24

Upload: others

Post on 10-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Contracts for Mobile Processes

Giuseppe Castagna Luca Padovani

Laboratoire PPS, CNRS, Universite Paris Diderot

Istituto di Scienze e Tecnologie dell’Informazione, Universita di Urbino

Parsec meeting, January 26th, 2009

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 1 /

24

Page 2: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Outline

1 MotivationProtocols and processesContracts and mobile systems

2 ContractsSyntaxSemantics

3 Results

4 Concluding remarks

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 2 /

24

Page 3: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Protocols and processes

Session types

• prescriptions on the use of channels

u : σ, v : τ , · · · ` P

Contracts

• overall process behavior

u : Ch, v : Ch, · · · ` P : T

Summary

• both are behavioral types

• σ = projection of T on u

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 3 /

24

Page 4: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

What session types and contracts are for

Characterizing well-formed systems

• the system eventually terminates

• the system never deadlocks

Characterizing well-typed processes

• sent messages have the correct/expected type

• messages sent/delivered in the right order

Reasoning about processes by means of their type

• refactoring processes

• searching for services

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 4 /

24

Page 5: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

A problem of abstraction

Session types Contracts

?Int.?Int.(!Real⊕ !Error) a.a.(b ⊕ c)

?(!Bool.!Bool) a ?

A natural candidate

Contracts without channel passing ⇒ ccs

Contracts with channel passing ⇒ π-calculus

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 5 /

24

Page 6: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

A problem of abstraction

Session types Contracts

?Int.?Int.(!Real⊕ !Error) a.a.(b ⊕ c)

?(!Bool.!Bool) a ?

A natural candidate

Contracts without channel passing ⇒ ccs

Contracts with channel passing ⇒ π-calculus

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 5 /

24

Page 7: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

An example

process store?LxM.x?(y : Item).

if y is in stock

then bank!LxM

else x!〈available(y)〉

contract store?(x).x?Item.(bank!x .1⊕x!Date.1)

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 6 /

24

Page 8: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

An example

process store?LxM.x?(y : Item).

if y is in stock

then bank!LxM

else x!〈available(y)〉

contract store?(x).x?Item.(bank!x .1⊕x!Date.1)

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 6 /

24

Page 9: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

An example

process store?LxM.x?(y : Item).

if y is in stock

then bank!LxM

else x!〈available(y)〉

contract store?(x).x?Item.(bank!x .1⊕x!Date.1)

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 6 /

24

Page 10: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

An example

process store?LxM.x?(y : Item).

if y is in stock

then bank!LxM

else x!〈available(y)〉

contract store?(x).x?Item.(bank!x .1⊕x!Date.1)

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 6 /

24

Page 11: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Some typing rules

v-sendΓ ` e : t Γ ` P : T

Γ ` α!e.P : α!t.T

v-recvΓ, x : t ` P : T

Γ ` α?(x : t).P : α?t.T

c-sendΓ ` P : T

Γ ` α!LβM.P : α!β.T

c-recvΓ, x : Ch ` P : T

Γ ` α?LxM.P : α?(x).T

undecidable → decidable

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 7 /

24

Page 12: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Some typing rules

v-sendΓ ` e : t Γ ` P : T

Γ ` α!e.P : α!t.T

v-recvΓ, x : t ` P : T

Γ ` α?(x : t).P : α?t.T

c-sendΓ ` P : T

Γ ` α!LβM.P : α!β.T

c-recvΓ, x : Ch ` P : T

Γ ` α?LxM.P : α?(x).T

undecidable → decidable

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 7 /

24

Page 13: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Outline

1 MotivationProtocols and processesContracts and mobile systems

2 ContractsSyntaxSemantics

3 Results

4 Concluding remarks

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 8 /

24

Page 14: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Syntax

T ::= 0 | 1 π.T | T + T | T ⊕ T T |T | (νa)T

π ::= α?f | α!f | α!(a)

f ::= x | (x) | a | Int | Bool | · · ·

Infinite behaviors = infinite terms

• regularity X = c?Int.X

• boundedness X = a?(x).(c!x .1 | X )

failure, success

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 9 /

24

Page 15: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Syntax

T ::= 0 | 1 π.T | T + T | T ⊕ T T |T | (νa)T

π ::= α?f | α!f | α!(a)

f ::= x | (x) | a | Int | Bool | · · ·

Infinite behaviors = infinite terms

• regularity X = c?Int.X

• boundedness X = a?(x).(c!x .1 | X )

dynamic operators

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 9 /

24

Page 16: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Syntax

T ::= 0 | 1 π.T | T + T | T ⊕ T T |T | (νa)T

π ::= α?f | α!f | α!(a)

f ::= x | (x) | a | Int | Bool | · · ·

Infinite behaviors = infinite terms

• regularity X = c?Int.X

• boundedness X = a?(x).(c!x .1 | X )

systems

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 9 /

24

Page 17: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Syntax

T ::= 0 | 1 π.T | T + T | T ⊕ T T |T | (νa)T

π ::= α?f | α!f | α!(a)

f ::= x | (x) | a | Int | Bool | · · ·

Infinite behaviors = infinite terms

• regularity X = c?Int.X

• boundedness X = a?(x).(c!x .1 | X )

prefixes

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 9 /

24

Page 18: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Syntax

T ::= 0 | 1 π.T | T + T | T ⊕ T T |T | (νa)T

π ::= α?f | α!f | α!(a)

f ::= x | (x) | a | Int | Bool | · · ·

Infinite behaviors = infinite terms

• regularity X = c?Int.X

• boundedness X = a?(x).(c!x .1 | X )

patterns = sets of values and names + binders

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 9 /

24

Page 19: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Syntax

T ::= 0 | 1 π.T | T + T | T ⊕ T T |T | (νa)T

π ::= α?f | α!f | α!(a)

f ::= x | (x) | a | Int | Bool | · · ·

Infinite behaviors = infinite terms

• regularity X = c?Int.X

• boundedness X = a?(x).(c!x .1 | X )

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 9 /

24

Page 20: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Labeled operational semantics

1X−→ 1

m ∈ f ; σ

c?f .Tc?m−→ Tσ

m ∈ f

c!f .T −→ c!m.Tc!m.T

c!m−→ T

Example

c!Int.1 | c?Real.1 −→ c!20.1 | c?Real.1 −→ 1 | 1 X−→

20 ∈ Int 20 ∈ Real ; ∅

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 10

/ 24

Page 21: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Contracts as behavioral types

Systems

Sdef= T1 | T2 | · · · | Tn

1 when is a system well-formed?

2 when is a process well-typed?

3 when are two types equal?

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 11

/ 24

Page 22: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Participant satisfaction

DefinitionT / S if T | S =⇒ T ′ | S ′ and T ′ X−→ implies

• T ′ µ1−→ and S ′ µ2=⇒

• µ1 # µ2 (c!m # c?m, X # X)

for some µ1 and µ2

Examples

• c!Int.1 / c?Real.1

• c!Real.1 6/ c?Int.1c!Real.1 | c?Int.1 −→ c!

√2.1 | c?Int.1 stuck

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 12

/ 24

Page 23: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Well-formed systems

Sdef= T1 | T2 | · · · | Tn

Definition

S is well formed if Tk /∏

i∈{1,...,n}\{k}

Ti for every 1 ≤ k ≤ n

Examples

• c!Int.1 | c?Real.1 is well formed

• c!Real.1 | c?Int.1 is ill formed

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 13

/ 24

Page 24: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Well-typed participant

DefinitionT is viable if T | S is well formed for some S

Example

Tdef= c?Int.1 + c?Bool.0

Sdef= c?Int.0 + c?Bool.1

• T is viable

• S is viable

• T ⊕ S is not viable

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 14

/ 24

Page 25: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Example: global order on channels

Pdef= a?LxM.b?LyM.x!3.x?(z : Int).y !true.0

P ′ def= a?LxM.b?LyM.x!3.y !true.x?(z : Int).0

Qdef= a!(c).b!(d).c?(z : Int).d?(z : Bool).c!5.0

Q ′ def= a!(c).b!(d).c?(z : Int).c!5.d?(z ′ : Bool).0

• deadlock because of cyclic dependency

• TP | TQ ill-formed (not viable!)

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 15

/ 24

Page 26: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Example: global order on channels

Pdef= a?LxM.b?LyM.x!3.x?(z : Int).y !true.0

P ′ def= a?LxM.b?LyM.x!3.y !true.x?(z : Int).0

Qdef= a!(c).b!(d).c?(z : Int).d?(z : Bool).c!5.0

Q ′ def= a!(c).b!(d).c?(z : Int).c!5.d?(z ′ : Bool).0

• imposing global order

• TP | TQ′ well-formed

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 15

/ 24

Page 27: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Example: global order on channels

Pdef= a?LxM.b?LyM.x!3.x?(z : Int).y !true.0

P ′ def= a?LxM.b?LyM.x!3.y !true.x?(z : Int).0

Qdef= a!(c).b!(d).c?(z : Int).d?(z : Bool).c!5.0

Q ′ def= a!(c).b!(d).c?(z : Int).c!5.d?(z ′ : Bool).0

• global order is not necessary

• TP′ | TQ well-formed

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 15

/ 24

Page 28: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Example: linearity

a?LxM.b?LyM.x!LyM.x?(z : Int).y !true.0

a!(c).b!(d).c?LzM.c!5.z?(z ′ : Bool).0

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 16

/ 24

Page 29: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Subcontract

DefinitionT � S if T | R well formed implies S | R well formed for every R

Examples

• T ⊕ S � T

• π.T + π.S ≈ π.(T ⊕ S)

. . . very much like the must preorder . . .

• 0 � T

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 17

/ 24

Page 30: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

� is not a precongruence

0 � T

Definition (strong subcontract)

Let v be the largest precongruence included in �

Theorem

If T is viable, then T � S iff T v S

• T v 0 iff T is not viable

• if 1 + T v T , then T is well formed

• π.0 v π.T

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 18

/ 24

Page 31: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Outline

1 MotivationProtocols and processesContracts and mobile systems

2 ContractsSyntaxSemantics

3 Results

4 Concluding remarks

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 19

/ 24

Page 32: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

On progress

Theorem

If ` P : T and T w.f. and Pτ

=⇒ Q X τ−→, then Q has succeeded

• success = “no pending actions”

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 20

/ 24

Page 33: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

On decidability

Proposition• well-formedness

• viability

• subcontract

are decidable provided that c!f matches finitely many names

If a name is sent:

• either it is fresh c!(a)

• or it is a public name c!a

• or it was received earlier c?(x) · · · d !x

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 21

/ 24

Page 34: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Outline

1 MotivationProtocols and processesContracts and mobile systems

2 ContractsSyntaxSemantics

3 Results

4 Concluding remarks

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 22

/ 24

Page 35: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Session types and contracts: a comparison

• optimistic vs conservative

• global vs compositional

Session types Contracts

structuring ++ −−

analysis −− ++

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 23

/ 24

Page 36: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Concluding remarks

Contributions

1 contracts for processes with channel mobility

2 straightforward solution to global progress(of bounded systems)

Our wish list

• algorithms (almost done)

• choreographic specifications

• expressiveness

Thank you.

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 24

/ 24

Page 37: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Concluding remarks

Contributions

1 contracts for processes with channel mobility

2 straightforward solution to global progress(of bounded systems)

Our wish list

• algorithms (almost done)

• choreographic specifications

• expressiveness

Thank you.

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 24

/ 24

Page 38: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Regular does not mean finite-state

• unbounded participants• unbounded buffers• state encoded within processes

P(x : Int) = deposit?(y : Int).P(x + y)+ withdraw?(y : Int).P(max{0, x − y})

P(0)

P = c?(x : Int).(deposit?(y : Int).c!〈x + y〉.P+ withdraw?(y : Int).c!〈max{0, x − y}〉.P)

Q = c?(x : Int).c!〈x〉.Q

(νc)(P | c!〈0〉.Q)

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 25

/ 24

Page 39: Contracts for Mobile Processes · Contracts for Mobile Processes Giuseppe Castagna Luca Padovani Laboratoire PPS, CNRS, Universit e Paris Diderot Istituto di Scienze e Tecnologie

Simulating asynchrony

inputΓ ` α : Ch Γ, x : t ` P : T

Γ ` α?(x : t).P : α?t.T + α?¬t.0

c-recvΓ ` α : Ch Γ, x : Ch ` P : T

Γ ` α?LxM.P : α?(x).T + α?¬Ch.0

[slides by L.Padovani] Contracts for Mobile Processes (G.Castagna/L.Padovani)Parsec meeting, January 26th, 2009 26

/ 24