Open Bisimulation, Revisited - Spi

May 11, 2006 - Bisimulations. 3. The spi-calculus. 4. K-open bisimulation. 5. Open hedged bisimulation. Briais, Nestmann (EPFL). Open Bisimulation, Revisited.
1MB taille 4 téléchargements 454 vues
Open Bisimulation, Revisited S. Briais

U. Nestmann

School of Computer and Communication Sciences École Polytechnique Fédérale de Lausanne

COMETE-PARSIFAL Seminar 11 May, 2006 Paris, FRANCE

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

1 / 39

Outline

1

The pi-calculus

2

Bisimulations

3

The spi-calculus

4

K-open bisimulation

5

Open hedged bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

2 / 39

The pi-calculus

Outline

1

The pi-calculus

2

Bisimulations

3

The spi-calculus

4

K-open bisimulation

5

Open hedged bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

3 / 39

The pi-calculus

Syntax

Processes P, Q

::=

0 π.P

!P (νz) P

P||Q [ x = y ]P

P +Q

Prefixes π

::=

τ

Briais, Nestmann (EPFL)

x(z)

xhzi

Open Bisimulation, Revisited

4 / 39

The pi-calculus

Syntax

Processes P, Q

::=

0 π.P

!P (νz) P

P||Q [ x = y ]P

P +Q

Prefixes π

::=

τ

x(z)

xhzi

Only names

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

4 / 39

The pi-calculus

Late Labelled Semantics

az

I NPUT

a(x)

a(x).P −−→ P

Briais, Nestmann (EPFL)

(νz) a z

(νz) P −−−−→ P

a(x)

C LOSE - L

P −−→ P 0

O PEN

P −−→ P 0

z 6= a 0

(νz) a z

Q −−−−→ Q 0

τ

P||Q − → (νz) (P 0 {z/x }||Q 0 )

Open Bisimulation, Revisited

z 6∈ fn(P)

5 / 39

Bisimulations

Outline

1

The pi-calculus

2

Bisimulations

3

The spi-calculus

4

K-open bisimulation

5

Open hedged bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

6 / 39

Bisimulations

Bisimulation

Proof techniques for showing process equivalence

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

7 / 39

Bisimulations

Bisimulation

Proof techniques for showing process equivalence Wide variety of bisimulations: ground, early, late, open, . . .

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

7 / 39

Bisimulations

Bisimulation

Proof techniques for showing process equivalence Wide variety of bisimulations: ground, early, late, open, . . . The above cited differ on how they handle substitutions

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

7 / 39

Bisimulations

Bisimulation

Proof techniques for showing process equivalence Wide variety of bisimulations: ground, early, late, open, . . . The above cited differ on how they handle substitutions For example, ground: no substitutions at all

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

7 / 39

Bisimulations

Bisimulation

Proof techniques for showing process equivalence Wide variety of bisimulations: ground, early, late, open, . . . The above cited differ on how they handle substitutions For example, ground: no substitutions at all P | Q

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

7 / 39

Bisimulations

Bisimulation

Proof techniques for showing process equivalence Wide variety of bisimulations: ground, early, late, open, . . . The above cited differ on how they handle substitutions For example, ground: no substitutions at all P | Q

Briais, Nestmann (EPFL)

α

− → P0

Open Bisimulation, Revisited

7 / 39

Bisimulations

Bisimulation

Proof techniques for showing process equivalence Wide variety of bisimulations: ground, early, late, open, . . . The above cited differ on how they handle substitutions For example, ground: no substitutions at all P | Q

Briais, Nestmann (EPFL)

α

− → P0 α

− →

Open Bisimulation, Revisited

7 / 39

Bisimulations

Bisimulation

Proof techniques for showing process equivalence Wide variety of bisimulations: ground, early, late, open, . . . The above cited differ on how they handle substitutions For example, ground: no substitutions at all P | Q

Briais, Nestmann (EPFL)

α

− → P0 α

− → Q0

Open Bisimulation, Revisited

7 / 39

Bisimulations

Bisimulation

Proof techniques for showing process equivalence Wide variety of bisimulations: ground, early, late, open, . . . The above cited differ on how they handle substitutions For example, ground: no substitutions at all P | Q

Briais, Nestmann (EPFL)

α

− → P0 | α − → Q0

Open Bisimulation, Revisited

7 / 39

Bisimulations

Substitutions

A substitution has finite domain

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

8 / 39

Bisimulations

Substitutions

A substitution has finite domain replaces something (a name) by something (e.g.: a name)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

8 / 39

Bisimulations

Substitutions

A substitution has finite domain replaces something (a name) by something (e.g.: a name) can be lifted to bigger entities (e.g.: messages)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

8 / 39

Bisimulations

Substitutions

A substitution has finite domain replaces something (a name) by something (e.g.: a name) can be lifted to bigger entities (e.g.: messages) Some questions when designing a bisimulation:

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

8 / 39

Bisimulations

Substitutions

A substitution has finite domain replaces something (a name) by something (e.g.: a name) can be lifted to bigger entities (e.g.: messages) Some questions when designing a bisimulation: When should substitutions be applied?

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

8 / 39

Bisimulations

Substitutions

A substitution has finite domain replaces something (a name) by something (e.g.: a name) can be lifted to bigger entities (e.g.: messages) Some questions when designing a bisimulation: When should substitutions be applied? Which names are substitutable?

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

8 / 39

Bisimulations

Substitutions

A substitution has finite domain replaces something (a name) by something (e.g.: a name) can be lifted to bigger entities (e.g.: messages) Some questions when designing a bisimulation: When should substitutions be applied? Which names are substitutable? By what?

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

8 / 39

Bisimulations

Early and late bisimulation

The symmetric relation R ⊂ P × P is

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

9 / 39

Bisimulations

Early and late bisimulation

The symmetric relation R ⊂ P × P is I

α

an early bisimulation if for all (P, Q) ∈ R, if P − → P 0 then

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

9 / 39

Bisimulations

Early and late bisimulation

The symmetric relation R ⊂ P × P is I

α

an early bisimulation if for all (P, Q) ∈ R, if P − → P 0 then i) if α is not an input,

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

9 / 39

Bisimulations

Early and late bisimulation

The symmetric relation R ⊂ P × P is I

α

an early bisimulation if for all (P, Q) ∈ R, if P − → P 0 then i) if α is not an input, α there exists Q 0 such that Q − → Q 0 and P 0 R Q 0

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

9 / 39

Bisimulations

Early and late bisimulation

The symmetric relation R ⊂ P × P is I

α

an early bisimulation if for all (P, Q) ∈ R, if P − → P 0 then i) if α is not an input, α there exists Q 0 such that Q − → Q 0 and P 0 R Q 0 ii) if α = a(x),

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

9 / 39

Bisimulations

Early and late bisimulation

The symmetric relation R ⊂ P × P is I

α

an early bisimulation if for all (P, Q) ∈ R, if P − → P 0 then i) if α is not an input, α there exists Q 0 such that Q − → Q 0 and P 0 R Q 0 ii) if α = a(x), α then for all u ∈ N , there exists Q 0 such that Q − → Q 0 and 0 u 0 u (P { /x }, Q { /x }) ∈ R

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

9 / 39

Bisimulations

Early and late bisimulation

The symmetric relation R ⊂ P × P is I

α

an early bisimulation if for all (P, Q) ∈ R, if P − → P 0 then i) if α is not an input, α there exists Q 0 such that Q − → Q 0 and P 0 R Q 0 ii) if α = a(x), α then for all u ∈ N , there exists Q 0 such that Q − → Q 0 and 0 u 0 u (P { /x }, Q { /x }) ∈ R

I

a late bisimulation if instead of ii), it satisfies

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

9 / 39

Bisimulations

Early and late bisimulation

The symmetric relation R ⊂ P × P is I

α

an early bisimulation if for all (P, Q) ∈ R, if P − → P 0 then i) if α is not an input, α there exists Q 0 such that Q − → Q 0 and P 0 R Q 0 ii) if α = a(x), α then for all u ∈ N , there exists Q 0 such that Q − → Q 0 and 0 u 0 u (P { /x }, Q { /x }) ∈ R

I

a late bisimulation if instead of ii), it satisfies ii’) if α = a(x), α then there exists Q 0 such that Q − → Q 0 and for all u ∈ N , 0 u 0 u (P { /x }, Q { /x }) ∈ R

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

9 / 39

Bisimulations

From late to open Late bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

10 / 39

Bisimulations

From late to open Late bisimulation P | Q

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

10 / 39

Bisimulations

From late to open Late bisimulation P |

a(x)

−−→ P 0

Q

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

10 / 39

Bisimulations

From late to open Late bisimulation

Briais, Nestmann (EPFL)

a(x)

P |

−−→ P 0

Q

−−→

a(x)

Open Bisimulation, Revisited

10 / 39

Bisimulations

From late to open Late bisimulation

Briais, Nestmann (EPFL)

a(x)

P |

−−→ P 0

Q

−−→ Q 0

a(x)

Open Bisimulation, Revisited

10 / 39

Bisimulations

From late to open Late bisimulation

Briais, Nestmann (EPFL)

a(x)

P 0 {z/x } |

a(x)

Q 0 {z/x }

P |

−−→ P 0

Q

−−→ Q 0

Open Bisimulation, Revisited

10 / 39

Bisimulations

From late to open Late bisimulation a(x)

P 0 {z/x } |

a(x)

Q 0 {z/x }

P |

−−→ P 0

Q

−−→ Q 0

Open bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

10 / 39

Bisimulations

From late to open Late bisimulation a(x)

P 0 {z/x } |

a(x)

Q 0 {z/x }

P |

−−→ P 0

Q

−−→ Q 0

Open bisimulation P | Q

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

10 / 39

Bisimulations

From late to open Late bisimulation a(x)

P 0 {z/x } |

a(x)

Q 0 {z/x }

P |

−−→ P 0

Q

−−→ Q 0

Open bisimulation P | Q

Briais, Nestmann (EPFL)



Open Bisimulation, Revisited

10 / 39

Bisimulations

From late to open Late bisimulation a(x)

P 0 {z/x } |

a(x)

Q 0 {z/x }

P |

−−→ P 0

Q

−−→ Q 0

Open bisimulation P | Q

Briais, Nestmann (EPFL)



Open Bisimulation, Revisited

α

− → P0

10 / 39

Bisimulations

From late to open Late bisimulation a(x)

P 0 {z/x } |

a(x)

Q 0 {z/x }

P |

−−→ P 0

Q

−−→ Q 0

Open bisimulation P | Q

Briais, Nestmann (EPFL)



α

− → P0



Open Bisimulation, Revisited

10 / 39

Bisimulations

From late to open Late bisimulation a(x)

P 0 {z/x } |

a(x)

Q 0 {z/x }

P |

−−→ P 0

Q

−−→ Q 0

Open bisimulation P | Q

Briais, Nestmann (EPFL)

α



− → P0



− → Q0

Open Bisimulation, Revisited

α

10 / 39

Bisimulations

From late to open Late bisimulation a(x)

P 0 {z/x } |

a(x)

Q 0 {z/x }

P |

−−→ P 0

Q

−−→ Q 0

Open bisimulation P | Q

Briais, Nestmann (EPFL)

Pσ Qσ

Open Bisimulation, Revisited

α

− → P0 | α − → Q0

10 / 39

Bisimulations

From late to open Late bisimulation a(x)

P 0 {z/x } |

a(x)

Q 0 {z/x }

P |

−−→ P 0

Q

−−→ Q 0

Open bisimulation P σ.D | Q

Pσ Qσ

α

− → P0 | α − → Q0

Indexed by a distinction D.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

10 / 39

Bisimulations

Distinctions

A distinction D is an irreflexive and symmetric relation between names (finite list of inequalities)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

11 / 39

Bisimulations

Distinctions

A distinction D is an irreflexive and symmetric relation between names (finite list of inequalities) A substitution σ respects D (σ . D) if xσ 6= y σ for all (x, y ) ∈ D.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

11 / 39

Bisimulations

Distinctions

A distinction D is an irreflexive and symmetric relation between names (finite list of inequalities) A substitution σ respects D (σ . D) if xσ 6= y σ for all (x, y ) ∈ D. If σ . D, we define the updated distinction Dσ.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

11 / 39

Bisimulations

Distinctions

A distinction D is an irreflexive and symmetric relation between names (finite list of inequalities) A substitution σ respects D (σ . D) if xσ 6= y σ for all (x, y ) ∈ D. If σ . D, we define the updated distinction Dσ. For example, if D = {(x, y ), (x, z), (y , x), (z, x)} then I

x 7→ u respects D and

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

11 / 39

Bisimulations

Distinctions

A distinction D is an irreflexive and symmetric relation between names (finite list of inequalities) A substitution σ respects D (σ . D) if xσ 6= y σ for all (x, y ) ∈ D. If σ . D, we define the updated distinction Dσ. For example, if D = {(x, y ), (x, z), (y , x), (z, x)} then I

x 7→ u respects D and the updated distinction is {(u, y ), (u, z), (y , u), (z, u)}

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

11 / 39

Bisimulations

Distinctions

A distinction D is an irreflexive and symmetric relation between names (finite list of inequalities) A substitution σ respects D (σ . D) if xσ 6= y σ for all (x, y ) ∈ D. If σ . D, we define the updated distinction Dσ. For example, if D = {(x, y ), (x, z), (y , x), (z, x)} then I

I

x 7→ u respects D and the updated distinction is {(u, y ), (u, z), (y , u), (z, u)} On the contrary, x 7→ u, y 7→ u does not respect D

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

11 / 39

Bisimulations

Open Bisimulation

An open bisimulation is a “symmetric” relation R ⊂ D × P × P such that

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

12 / 39

Bisimulations

Open Bisimulation

An open bisimulation is a “symmetric” relation R ⊂ D × P × P α such that for all (D, P, Q) ∈ R and σ . D, if Pσ − → P 0 then

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

12 / 39

Bisimulations

Open Bisimulation

An open bisimulation is a “symmetric” relation R ⊂ D × P × P α such that for all (D, P, Q) ∈ R and σ . D, if Pσ − → P 0 then α Qσ − → Q 0 and

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

12 / 39

Bisimulations

Open Bisimulation

An open bisimulation is a “symmetric” relation R ⊂ D × P × P α such that for all (D, P, Q) ∈ R and σ . D, if Pσ − → P 0 then α Qσ − → Q 0 and I

if α is not a bound output, then (Dσ, P 0 , Q 0 ) ∈ R

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

12 / 39

Bisimulations

Open Bisimulation

An open bisimulation is a “symmetric” relation R ⊂ D × P × P α such that for all (D, P, Q) ∈ R and σ . D, if Pσ − → P 0 then α Qσ − → Q 0 and I I

if α is not a bound output, then (Dσ, P 0 , Q 0 ) ∈ R otherwise, if α = (νz) a z, then

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

12 / 39

Bisimulations

Open Bisimulation

An open bisimulation is a “symmetric” relation R ⊂ D × P × P α such that for all (D, P, Q) ∈ R and σ . D, if Pσ − → P 0 then α Qσ − → Q 0 and I I

if α is not a bound output, then (Dσ, P 0 , Q 0 ) ∈ R otherwise, if α = (νz) a z, then (D 0 , P 0 , Q 0 ) ∈ R where D 0 = Dσ

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

12 / 39

Bisimulations

Open Bisimulation

An open bisimulation is a “symmetric” relation R ⊂ D × P × P α such that for all (D, P, Q) ∈ R and σ . D, if Pσ − → P 0 then α Qσ − → Q 0 and I I

if α is not a bound output, then (Dσ, P 0 , Q 0 ) ∈ R otherwise, if α = (νz) a z, then (D 0 , P 0 , Q 0 ) ∈ R where D 0 = Dσ ∪ {z} ⊗ (fn((P + Q)σ))

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

12 / 39

Bisimulations

Open Bisimulation

An open bisimulation is a “symmetric” relation R ⊂ D × P × P α such that for all (D, P, Q) ∈ R and σ . D, if Pσ − → P 0 then α Qσ − → Q 0 and I I

if α is not a bound output, then (Dσ, P 0 , Q 0 ) ∈ R otherwise, if α = (νz) a z, then (D 0 , P 0 , Q 0 ) ∈ R where D 0 = Dσ ∪ {z} ⊗ (fn((P + Q)σ))

Distinctions are used to forbid the fusing of fresh names with other names

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

12 / 39

Bisimulations

The lazy flavour of open

Briais, Nestmann (EPFL)

P

def

Q

def

= c(x).(τ + τ.τ + τ.[ x = a ]τ )

= c(x).(τ + τ.τ )

Open Bisimulation, Revisited

13 / 39

Bisimulations

The lazy flavour of open

P

def

Q

def

= c(x).(τ + τ.τ + τ.[ x = a ]τ )

= c(x).(τ + τ.τ )

P and Q are late bisimilar but not open

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

13 / 39

Bisimulations

The lazy flavour of open

P

def

Q

def

= c(x).(τ + τ.τ + τ.[ x = a ]τ )

= c(x).(τ + τ.τ )

P and Q are late bisimilar but not open In open, the instantiation of x can be delayed until x is used

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

13 / 39

Bisimulations

Some properties of open

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

14 / 39

Bisimulations

Some properties of open

Contrary to early or late, it is a full congruence

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

14 / 39

Bisimulations

Some properties of open

Contrary to early or late, it is a full congruence More precisely, open D-bisimilarity is a D-congruence

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

14 / 39

Bisimulations

Some properties of open

Contrary to early or late, it is a full congruence More precisely, open D-bisimilarity is a D-congruence It is easily implementable (Mobility Workbench, ABC)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

14 / 39

Bisimulations

Some properties of open

Contrary to early or late, it is a full congruence More precisely, open D-bisimilarity is a D-congruence It is easily implementable (Mobility Workbench, ABC) For these reasons, we wanted to extend open to the spi-calculus.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

14 / 39

The spi-calculus

Outline

1

The pi-calculus

2

Bisimulations

3

The spi-calculus

4

K-open bisimulation

5

Open hedged bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

15 / 39

The spi-calculus

The spi-calculus

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

16 / 39

The spi-calculus

The spi-calculus To model and study cryptographic protocols.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

16 / 39

The spi-calculus

The spi-calculus To model and study cryptographic protocols. Messages M, N

::=

Briais, Nestmann (EPFL)

x

(M . N)

EN (M)

Open Bisimulation, Revisited

16 / 39

The spi-calculus

The spi-calculus To model and study cryptographic protocols. Messages M, N

::=

x

(M . N)

EN (M)

Expressions E, F

::=

Briais, Nestmann (EPFL)

x (E . F ) EF (E)

π1 (E) DF (E)

Open Bisimulation, Revisited

π2 (E)

16 / 39

The spi-calculus

The spi-calculus To model and study cryptographic protocols. Messages M, N

::=

x

(M . N)

EN (M)

Expressions E, F

::=

x (E . F ) EF (E)

π1 (E) DF (E)

π2 (E)

Guards φ

::=

Briais, Nestmann (EPFL)

[E =F ]

[E :N ]

Open Bisimulation, Revisited

16 / 39

The spi-calculus

Evaluation of expressions and formulae

def

JaK = a def

JEF (E)K = EN (M) if JEK = M ∈ M and JF K = N ∈ M def

JDF (E)K = M def

JEK = ⊥

Briais, Nestmann (EPFL)

if JEK = EN (M) ∈ M and JF K = N ∈ M

in all other cases

Open Bisimulation, Revisited

17 / 39

The spi-calculus

Evaluation of expressions and formulae

def

JaK = a def

JEF (E)K = EN (M) if JEK = M ∈ M and JF K = N ∈ M def

if JEK = EN (M) ∈ M and JF K = N ∈ M

JDF (E)K = M def

JEK = ⊥

in all other cases def

JttK = true def

Jφ ∧ ψK = JφK and JψK def

J[ E = F ]K = true def

J[ E : N ]K = true def

JφK = false

Briais, Nestmann (EPFL)

if JEK = JF K = M ∈ M

if JEK = a ∈ N

in all other cases

Open Bisimulation, Revisited

17 / 39

The spi-calculus

The wide-mouthed frog protocol

S

A

Briais, Nestmann (EPFL)

B

Open Bisimulation, Revisited

18 / 39

The spi-calculus

The wide-mouthed frog protocol

S

A

1

B

A → S : (A . EkAS ((B . kAB )))

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

18 / 39

The spi-calculus

The wide-mouthed frog protocol

S

A

B

1

A → S : (A . EkAS ((B . kAB )))

2

S → B : EkBS (((A . B) . kAB ))

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

18 / 39

The spi-calculus

The wide-mouthed frog protocol

S

A

B

1

A → S : (A . EkAS ((B . kAB )))

2

S → B : EkBS (((A . B) . kAB ))

3

A → B : EkAB (m)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

18 / 39

The spi-calculus

.. in spi-calculus

(νkAS , kBS ) (νkAB ) Sh(A . EkAS ((B . kAB )))i.BhEkAB (m)i. 0 ||B(x1 ).φ1 B(x2 ).φ2 0 ||S(x0 ).φ0 BhEkBS (((A . B) . π2 (DkAS (π2 (x0 )))))i. 0

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

19 / 39

The spi-calculus

.. in spi-calculus

(νkAS , kBS ) (νkAB ) Sh(A . EkAS ((B . kAB )))i.BhEkAB (m)i. 0 ||B(x1 ).φ1 B(x2 ).φ2 0 ||S(x0 ).φ0 BhEkBS (((A . B) . π2 (DkAS (π2 (x0 )))))i. 0

φ0 = [ B = π1 (DkAS (π2 (x0 ))) ] ∧ [ A = π1 (x0 ) ] φ1 = [ B = π1 (π2 (DkBS (x1 ))) ] ∧ [ A = π1 (DkBS (x1 )) ] φ2 = [ Dπ2 (π2 (Dk (x1 ))) (x2 ) : M ] BS

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

19 / 39

The spi-calculus

Open in spi?

Consider def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

20 / 39

The spi-calculus

Open in spi?

Consider def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai)

The guard [ x = k ] can never be true.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

20 / 39

The spi-calculus

Open in spi?

Consider def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai)

The guard [ x = k ] can never be true. The name k has been extruded when performing a Ek (m).

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

20 / 39

The spi-calculus

Open in spi?

Consider def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai)

The guard [ x = k ] can never be true. The name k has been extruded when performing a Ek (m). What are the possible values for x?

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

20 / 39

The spi-calculus

Open in spi?

Consider def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai)

The guard [ x = k ] can never be true. The name k has been extruded when performing a Ek (m). What are the possible values for x? a

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

20 / 39

The spi-calculus

Open in spi?

Consider def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai)

The guard [ x = k ] can never be true. The name k has been extruded when performing a Ek (m). What are the possible values for x? a, z for any z fresh

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

20 / 39

The spi-calculus

Open in spi?

Consider def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai)

The guard [ x = k ] can never be true. The name k has been extruded when performing a Ek (m). What are the possible values for x? a, z for any z fresh(not in {k , m, a})

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

20 / 39

The spi-calculus

Open in spi?

Consider def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai)

The guard [ x = k ] can never be true. The name k has been extruded when performing a Ek (m). What are the possible values for x? a, z for any z fresh(not in {k , m, a}), Ek (m)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

20 / 39

The spi-calculus

Open in spi?

Consider def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai)

The guard [ x = k ] can never be true. The name k has been extruded when performing a Ek (m). What are the possible values for x? a, z for any z fresh(not in {k , m, a}), Ek (m) and any message built with these “bricks”

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

20 / 39

The spi-calculus

Bisimulations in spi

Bisimulations of π-calculus are two strong

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

21 / 39

The spi-calculus

Bisimulations in spi

Bisimulations of π-calculus are two strong def

P(m) = (νk ) ahEk (m)i

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

21 / 39

The spi-calculus

Bisimulations in spi

Bisimulations of π-calculus are two strong def

P(m) = (νk ) ahEk (m)i For any m and n, we want P(m) and P(n) equivalent.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

21 / 39

The spi-calculus

Bisimulations in spi

Bisimulations of π-calculus are two strong def

P(m) = (νk ) ahEk (m)i For any m and n, we want P(m) and P(n) equivalent. Abadi and Gordon have introduced environment-sensitive bisimulation.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

21 / 39

K-open bisimulation

Outline

1

The pi-calculus

2

Bisimulations

3

The spi-calculus

4

K-open bisimulation

5

Open hedged bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

22 / 39

K-open bisimulation

Different kinds of free names

def

P = a(x).(νk ) bhk i.xhk i. 0 A free name is

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

23 / 39

K-open bisimulation

Different kinds of free names

def

P = a(x).(νk ) bhk i.xhk i. 0 A free name is either initially free

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

23 / 39

K-open bisimulation

Different kinds of free names

def

P = a(x).(νk ) bhk i.xhk i. 0 A free name is either initially free or becomes free after an input

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

23 / 39

K-open bisimulation

Different kinds of free names

def

P = a(x).(νk ) bhk i.xhk i. 0 A free name is either initially free or becomes free after an input or becomes free by scope extrusion

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

23 / 39

K-open bisimulation

Different kinds of free names

def

P = a(x).(νk ) bhk i.xhk i. 0 A free name is either initially free or becomes free after an input or becomes free by scope extrusion The first two kinds are substitutable:

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

23 / 39

K-open bisimulation

Different kinds of free names

def

P = a(x).(νk ) bhk i.xhk i. 0 A free name is either initially free or becomes free after an input or becomes free by scope extrusion The first two kinds are substitutable: I

by any name that was known at the moment they became free or

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

23 / 39

K-open bisimulation

Different kinds of free names

def

P = a(x).(νk ) bhk i.xhk i. 0 A free name is either initially free or becomes free after an input or becomes free by scope extrusion The first two kinds are substitutable: I I

by any name that was known at the moment they became free or any fresh name.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

23 / 39

K-open bisimulation

Refining distinctions A distinction is a finite list of inequalities between names.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

24 / 39

K-open bisimulation

Refining distinctions A distinction is a finite list of inequalities between names. We take a dual approach for constraining admissible substitutions.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

24 / 39

K-open bisimulation

Refining distinctions A distinction is a finite list of inequalities between names. We take a dual approach for constraining admissible substitutions. e = (C, V , ≺)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

24 / 39

K-open bisimulation

Refining distinctions A distinction is a finite list of inequalities between names. We take a dual approach for constraining admissible substitutions. e = (C, V , ≺) I

C contains the emitted names (or messages) not in V

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

24 / 39

K-open bisimulation

Refining distinctions A distinction is a finite list of inequalities between names. We take a dual approach for constraining admissible substitutions. e = (C, V , ≺) I I

C contains the emitted names (or messages) not in V V contains the input names and the initially free ones

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

24 / 39

K-open bisimulation

Refining distinctions A distinction is a finite list of inequalities between names. We take a dual approach for constraining admissible substitutions. e = (C, V , ≺) I I I

C contains the emitted names (or messages) not in V V contains the input names and the initially free ones ≺ indicates for each x ∈ V which names in C were known before

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

24 / 39

K-open bisimulation

Environments

def

P = (νk ) ahk i.a(x).((νl) bhli||[ x = k ]ahai) C ∅

V {a, b}

≺ ∅

D=∅

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

25 / 39

K-open bisimulation

Environments

def

P = (νk ) ahk i.a(x).((νl) bhli||[ x = k ]ahai) C ∅ {k }

V {a, b} {a, b}

≺ ∅ ∅

D = k 6= a, k 6= b

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

25 / 39

K-open bisimulation

Environments

def

P = (νk ) ahk i.a(x).((νl) bhli||[ x = k ]ahai) C ∅ {k } {k }

V ≺ {a, b} ∅ {a, b} ∅ {a, b, x} {(k , x)}

D = k 6= a, k 6= b

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

25 / 39

K-open bisimulation

Environments

def

P = (νk ) ahk i.a(x).((νl) bhli||[ x = k ]ahai) C ∅ {k } {k }

V ≺ {a, b} ∅ {a, b} ∅ {a, b, x} {(k , x)}

D = k 6= a, k 6= b

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

25 / 39

K-open bisimulation

Environments

def

P = (νk ) ahk i.a(x).((νl) bhli||[ x = l ]ahai) C ∅ {k } {k }

V ≺ {a, b} ∅ {a, b} ∅ {a, b, x} {(k , x)}

D = k 6= a, k 6= b

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

25 / 39

K-open bisimulation

Environments

def

P = (νk ) ahk i.a(x).((νl) bhli||[ x = k ]ahai) C V ≺ ∅ {a, b} ∅ {k } {a, b} ∅ {k } {a, b, x} {(k , x)} {k , l} {a, b, x} {(k , x)} D = k 6= a, k 6= b, l 6= a, l 6= b, l 6= x, k 6= l

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

25 / 39

K-open bisimulation

Environments

def

P = (νk ) ahk i.a(x).((νl) bhli||[ x = k ]ahai) C V ≺ ∅ {a, b} ∅ {k } {a, b} ∅ {k } {a, b, x} {(k , x)} {k , l} {a, b, x} {(k , x)} D = k 6= a, k 6= b, l 6= a, l 6= b, l 6= x, k 6= l

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

25 / 39

K-open bisimulation

Environments

def

P = (νk ) ahk i.a(x).((νl) bhli||[ x = l ]ahai) C V ≺ ∅ {a, b} ∅ {k } {a, b} ∅ {k } {a, b, x} {(k , x)} {k , l} {a, b, x} {(k , x)} D = k 6= a, k 6= b, l 6= a, l 6= b, l 6= x, k 6= l

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

25 / 39

K-open bisimulation

Environments

def

P = (νk ) ahk i.a(x).((νl) bhli||[ x = k ]ahai) C V ≺ ∅ {a, b} ∅ {k } {a, b} ∅ {k } {a, b, x} {(k , x)} {k , l} {a, b, x} {(k , x)} D = k 6= a, k 6= b, l 6= a, l 6= b, l 6= x, k 6= l

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

25 / 39

K-open bisimulation

Refining distinctions A distinction is a finite list of inequalities between names. We take a dual approach for constraining admissible substitutions. e = (C, V , ≺) I I I

C contains the emitted names (or messages) not in V V contains the input names and the initially free ones ≺ indicates for each x ∈ V which names in C were known before

A substitution σ respects e if supp(σ) ⊆ V and σ does not “contradict” ≺

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

26 / 39

K-open bisimulation

Refining distinctions A distinction is a finite list of inequalities between names. We take a dual approach for constraining admissible substitutions. e = (C, V , ≺) I I I

C contains the emitted names (or messages) not in V V contains the input names and the initially free ones ≺ indicates for each x ∈ V which names in C were known before

A substitution σ respects e if supp(σ) ⊆ V and σ does not “contradict” ≺ The corresponding distinction is def

D(C, V , ≺) = C 6= ∪ {n 6= x | n ∈ C ∧ ¬(n≺x)}

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

26 / 39

K-open bisimulation

Some results We have

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

27 / 39

K-open bisimulation

Some results We have (C,V ,≺)

P ∼K

Briais, Nestmann (EPFL)

D(C,V ,≺)

Q ⇒ P ∼O

Open Bisimulation, Revisited

Q

27 / 39

K-open bisimulation

Some results We have (C,V ,≺)

P ∼K

D(C,V ,≺)

P ∼O

Briais, Nestmann (EPFL)

D(C,V ,≺)

Q

(C,V ,≺)

Q

Q ⇒ P ∼O

Q ⇒ P ∼K

Open Bisimulation, Revisited

27 / 39

K-open bisimulation

Some results We have (C,V ,≺)

P ∼K

D(C,V ,≺)

P ∼O

D(C,V ,≺)

Q

(C,V ,≺)

Q

Q ⇒ P ∼O

Q ⇒ P ∼K

In particular (∅,fn(P+Q),∅)

P ∼∅O Q ⇔ P ∼K

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

Q

27 / 39

K-open bisimulation

Some results We have (C,V ,≺)

P ∼K

D(C,V ,≺)

P ∼O

D(C,V ,≺)

Q

(C,V ,≺)

Q

Q ⇒ P ∼O

Q ⇒ P ∼K

In particular (∅,fn(P+Q),∅)

P ∼∅O Q ⇔ P ∼K

Q

if e is an environment, then open D(e)-bisimilarity is an e-congruence Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

27 / 39

Open hedged bisimulation

Outline

1

The pi-calculus

2

Bisimulations

3

The spi-calculus

4

K-open bisimulation

5

Open hedged bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

28 / 39

Open hedged bisimulation

The intruder knowledge (1/2)

A hedge h is a finite set of pairs of message

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

29 / 39

Open hedged bisimulation

The intruder knowledge (1/2)

A hedge h is a finite set of pairs of message The synthesis S(h) is the smallest set that contains h and satisfies ( SYN - ENC )

Briais, Nestmann (EPFL)

(M, N) ∈ S(h)

(K , L) ∈ S(h)

(EK (M), EL (N)) ∈ S(h)

Open Bisimulation, Revisited

29 / 39

Open hedged bisimulation

The intruder knowledge (1/2)

A hedge h is a finite set of pairs of message The synthesis S(h) is the smallest set that contains h and satisfies ( SYN - ENC )

(M, N) ∈ S(h)

(K , L) ∈ S(h)

(EK (M), EL (N)) ∈ S(h)

For example, if h = {(a, a), (k , k )}, we have (Ek (a), Ek (a)) ∈ S(h)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

29 / 39

Open hedged bisimulation

The intruder knowledge (1/2)

A hedge h is a finite set of pairs of message The synthesis S(h) is the smallest set that contains h and satisfies ( SYN - ENC )

(M, N) ∈ S(h)

(K , L) ∈ S(h)

(EK (M), EL (N)) ∈ S(h)

For example, if h = {(a, a), (k , k )}, we have (Ek (a), Ek (a)) ∈ S(h) In general, S(h) is not a hedge since it is not finite.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

29 / 39

Open hedged bisimulation

The intruder knowledge (2/2)

The analysis A(h) is the smallest hedge that contains h and satisfies ( ANA - DEC )

Briais, Nestmann (EPFL)

(EK (M), EL (N)) ∈ A(h)

(K , L) ∈ S(A(h))

(M, N) ∈ A(h)

Open Bisimulation, Revisited

30 / 39

Open hedged bisimulation

The intruder knowledge (2/2)

The analysis A(h) is the smallest hedge that contains h and satisfies ( ANA - DEC )

(EK (M), EL (N)) ∈ A(h)

(K , L) ∈ S(A(h))

(M, N) ∈ A(h)

For example, if h = {(k , k ), (Ek (a), Ek (a))}, we have A(h) = {(k , k ), (Ek (a), Ek (a)), (a, a)}.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

30 / 39

Open hedged bisimulation

The intruder knowledge (2/2)

The analysis A(h) is the smallest hedge that contains h and satisfies ( ANA - DEC )

(EK (M), EL (N)) ∈ A(h)

(K , L) ∈ S(A(h))

(M, N) ∈ A(h)

For example, if h = {(k , k ), (Ek (a), Ek (a))}, we have A(h) = {(k , k ), (Ek (a), Ek (a)), (a, a)}. The irreducibles I(h) is a “minimal” hedge “equivalent” to A(h)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

30 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R,

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I

h is consistent

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I I

h is consistent α if P − → P0

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I I

h is consistent α if P − → P0 1

if α = τ ,

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I I

h is consistent α if P − → P0 1

β

then Q − → Q 0 and

if α = τ ,

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I I

h is consistent α if P − → P0 1

β

then Q − → Q 0 and

if α = τ , then β = τ and (h, P 0 , Q 0 ) ∈ R

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I I

h is consistent α if P − → P0 1 2

β

then Q − → Q 0 and

if α = τ , then β = τ and (h, P 0 , Q 0 ) ∈ R if α = a(x),

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I I

h is consistent β α → Q 0 and if P − → P 0 and ch(α) ∈ π1 (h) then Q − 1 2

if α = τ , then β = τ and (h, P 0 , Q 0 ) ∈ R if α = a(x),

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I I

h is consistent β α → Q 0 and if P − → P 0 and ch(α) ∈ π1 (h) then Q − 1 2

if α = τ , then β = τ and (h, P 0 , Q 0 ) ∈ R if α = a(x), then β = b(x) and (a, b) ∈ S(h)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I I

h is consistent β α → Q 0 and if P − → P 0 and ch(α) ∈ π1 (h) then Q − 1 2

if α = τ , then β = τ and (h, P 0 , Q 0 ) ∈ R if α = a(x), then β = b(x) and (a, b) ∈ S(h) for all (M, N) ∈ S(h

Briais, Nestmann (EPFL)

), (h

, P 0 {M/x }, Q 0 {N/x }) ∈ R

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I I

h is consistent β α → Q 0 and if P − → P 0 and ch(α) ∈ π1 (h) then Q − 1 2

if α = τ , then β = τ and (h, P 0 , Q 0 ) ∈ R if α = a(x), then β = b(x) and (a, b) ∈ S(h) for all B ⊂ N × N consistent (and minimal, and fresh) for all (M, N) ∈ S(h ∪ B), (h ∪ B, P 0 {M/x }, Q 0 {N/x }) ∈ R

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I I

h is consistent β α → Q 0 and if P − → P 0 and ch(α) ∈ π1 (h) then Q − 1 2

3

if α = τ , then β = τ and (h, P 0 , Q 0 ) ∈ R if α = a(x), then β = b(x) and (a, b) ∈ S(h) for all B ⊂ N × N consistent (and minimal, and fresh) for all (M, N) ∈ S(h ∪ B), (h ∪ B, P 0 {M/x }, Q 0 {N/x }) ∈ R if α = (ν c˜) a M,

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I I

h is consistent β α → Q 0 and if P − → P 0 and ch(α) ∈ π1 (h) then Q − 1 2

3

if α = τ , then β = τ and (h, P 0 , Q 0 ) ∈ R if α = a(x), then β = b(x) and (a, b) ∈ S(h) for all B ⊂ N × N consistent (and minimal, and fresh) for all (M, N) ∈ S(h ∪ B), (h ∪ B, P 0 {M/x }, Q 0 {N/x }) ∈ R ˜ b N and if α = (ν c˜) a M, then β = (ν d) (a, b) ∈ S(h)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

Late hedged bisimulation

A “symmetric” relation R ⊂ H × P × P is a late hedged bisimulation if for all (h, P, Q) ∈ R, I I

h is consistent β α → Q 0 and if P − → P 0 and ch(α) ∈ π1 (h) then Q − 1 2

3

if α = τ , then β = τ and (h, P 0 , Q 0 ) ∈ R if α = a(x), then β = b(x) and (a, b) ∈ S(h) for all B ⊂ N × N consistent (and minimal, and fresh) for all (M, N) ∈ S(h ∪ B), (h ∪ B, P 0 {M/x }, Q 0 {N/x }) ∈ R ˜ b N and if α = (ν c˜) a M, then β = (ν d) (a, b) ∈ S(h) (I(h ∪ {(M, N)}), P 0 , Q 0 ) ∈ R

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

31 / 39

Open hedged bisimulation

From late to open hedged An environment is now composed of

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

32 / 39

Open hedged bisimulation

From late to open hedged An environment is now composed of I

a hedge h: the emitted messages messages

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

32 / 39

Open hedged bisimulation

From late to open hedged An environment is now composed of I I

a hedge h: the emitted messages messages a finite set of pair of names v : the input names

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

32 / 39

Open hedged bisimulation

From late to open hedged An environment is now composed of I I I

a hedge h: the emitted messages messages a finite set of pair of names v : the input names ≺: precedence relation to indicate which part of h was available (for each input)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

32 / 39

Open hedged bisimulation

From late to open hedged An environment is now composed of I I I

I

a hedge h: the emitted messages messages a finite set of pair of names v : the input names ≺: precedence relation to indicate which part of h was available (for each input) two sets of names (γl , γr ): type constraints for input names

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

32 / 39

Open hedged bisimulation

Environments

def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai) 1

h2 ∅

Briais, Nestmann (EPFL)

1

v2 {a}

1

≺2 ∅

Open Bisimulation, Revisited

γl ∅

33 / 39

Open hedged bisimulation

Environments

def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai) 1

h2 ∅ {Ek (m)}

Briais, Nestmann (EPFL)

1

v2 {a} {a}

1

≺2 ∅ ∅

Open Bisimulation, Revisited

γl ∅ {a}

33 / 39

Open hedged bisimulation

Environments

def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai) 1

h2 ∅ {Ek (m)} {Ek (m)}

Briais, Nestmann (EPFL)

1

1

v2 ≺2 {a} ∅ {a} ∅ {a, x} Ek (m) ≺ x

Open Bisimulation, Revisited

γl ∅ {a} {a}

33 / 39

Open hedged bisimulation

Environments

def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai) 1

h2 ∅ {Ek (m)} {Ek (m)}

Briais, Nestmann (EPFL)

1

1

v2 ≺2 {a} ∅ {a} ∅ {a, x} Ek (m) ≺ x

Open Bisimulation, Revisited

γl ∅ {a} {a}

33 / 39

Open hedged bisimulation

Environments

def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai) 1

1

1

h2 v2 ≺2 ∅ {a} ∅ {Ek (m)} {a} ∅ {a, x} Ek (m) ≺ x {Ek (m)} {Ek (m), k , m} {a, x} Ek (m) ≺ x

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

γl ∅ {a} {a} {a}

33 / 39

Open hedged bisimulation

Environments

def

P = (νk ) (νm) ahEk (m)i.a(x).(ahk i||[ x = k ]ahai) 1

1

1

h2 v2 ≺2 ∅ {a} ∅ {Ek (m)} {a} ∅ {a, x} Ek (m) ≺ x {Ek (m)} {Ek (m), k , m} {a, x} Ek (m) ≺ x

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

γl ∅ {a} {a} {a}

33 / 39

Open hedged bisimulation

From late to open hedged An environment is now composed of I I I

I

a hedge h: the emitted messages messages a finite set of pair of names v : the input names ≺: precedence relation to indicate which part of h was available (for each input) two sets of names (γl , γr ): type constraints for input names

Moreover, we define I

the sets of pair of respectful substitutions (σ, ρ)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

34 / 39

Open hedged bisimulation

From late to open hedged An environment is now composed of I I I

I

a hedge h: the emitted messages messages a finite set of pair of names v : the input names ≺: precedence relation to indicate which part of h was available (for each input) two sets of names (γl , γr ): type constraints for input names

Moreover, we define I I

the sets of pair of respectful substitutions (σ, ρ) the consistency of an environment

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

34 / 39

Open hedged bisimulation

From late to open hedged An environment is now composed of I I I

I

a hedge h: the emitted messages messages a finite set of pair of names v : the input names ≺: precedence relation to indicate which part of h was available (for each input) two sets of names (γl , γr ): type constraints for input names

Moreover, we define I I I

the sets of pair of respectful substitutions (σ, ρ) the consistency of an environment the updating of an environment

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

34 / 39

Open hedged bisimulation

From late to open hedged An environment is now composed of I I I

I

a hedge h: the emitted messages messages a finite set of pair of names v : the input names ≺: precedence relation to indicate which part of h was available (for each input) two sets of names (γl , γr ): type constraints for input names

Moreover, we define I I I

the sets of pair of respectful substitutions (σ, ρ) the consistency of an environment the updating of an environment

... and we finally define the bisimulation.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

34 / 39

Open hedged bisimulation

From late to open hedged An environment is now composed of I I I

I

a hedge h: the emitted messages messages a finite set of pair of names v : the input names ≺: precedence relation to indicate which part of h was available (for each input) two sets of names (γl , γr ): type constraints for input names

Moreover, we define I I I

the sets of pair of respectful substitutions (σ, ρ) the consistency of an environment the updating of an environment

... and we finally define the bisimulation. The definition obtained is sound.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

34 / 39

Conclusion and future work

Conclusion

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

35 / 39

Conclusion and future work

Conclusion

Definition of K-open bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

35 / 39

Conclusion and future work

Conclusion

Definition of K-open bisimulation I

Coincides with open bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

35 / 39

Conclusion and future work

Conclusion

Definition of K-open bisimulation I I

Coincides with open bisimulation Defined of bigger set of contexts that preserves open

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

35 / 39

Conclusion and future work

Conclusion

Definition of K-open bisimulation I I

Coincides with open bisimulation Defined of bigger set of contexts that preserves open

Open hedged bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

35 / 39

Conclusion and future work

Conclusion

Definition of K-open bisimulation I I

Coincides with open bisimulation Defined of bigger set of contexts that preserves open

Open hedged bisimulation I

Sound w.r.t. late hedged bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

35 / 39

Conclusion and future work

Future work

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

36 / 39

Conclusion and future work

Future work

Study open hedged bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

36 / 39

Conclusion and future work

Future work

Study open hedged bisimulation I

Link with symbolic bisimulation of [BBN04]

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

36 / 39

Conclusion and future work

Future work

Study open hedged bisimulation I I

Link with symbolic bisimulation of [BBN04] Congruence properties?

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

36 / 39

Thank you!

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

37 / 39

Thank you! Questions?

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

37 / 39

Appendix

Bibliography

D. Sangiorgi A Theory of Bisimulation for the π-calculus. J. Borgström, S. Briais and U. Nestmann Symbolic Bisimulations in the Spi Calculus

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

38 / 39

Appendix

e-respectful contexts If e = (O, V , ≺), a context C[·] respects e if it is generated by CN [·]

::=

[·] P||CN [·] CN [·]||P P + CN [·] CN [·] + P ! CN [·] φCN [·] (νx) CN\{x} [·] ahzi.CN [·] a(x).CN [·] a(x).CN∪N 0 [·]

if N = ∅

if x ∈ 6 O∪V if x ∈ V and N 0 = {n ∈ O | ¬ n≺x}

with N ⊂ O and C∅ [·] as start symbol.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

39 / 39