Open Bisimulation, Revisited - Spi

Aug 27, 2005 - Outline. 1. The pi-calculus. 2. Bisimulations. 3. The spi-calculus. 4. K-open bisimulation. Briais, Nestmann (EPFL). Open Bisimulation, Revisited.
734KB taille 2 téléchargements 727 vues
Open Bisimulation, Revisited S. Briais

U. Nestmann

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

12th International Workshop on Expressiveness in Concurrency 27 August, 2005 San Francisco, USA

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

1 / 25

Outline

1

The pi-calculus

2

Bisimulations

3

The spi-calculus

4

K-open bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

2 / 25

The pi-calculus

Outline

1

The pi-calculus

2

Bisimulations

3

The spi-calculus

4

K-open bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

3 / 25

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

EXPRESS’05

4 / 25

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

EXPRESS’05

4 / 25

The pi-calculus

Labelled Semantics

az

I NPUT

O PEN

a(x)

a(x)

Briais, Nestmann (EPFL)

(νz) a z

z 6= a

(νz) P −−−−→ P 0

a(x).P −−→ P

C LOSE - L

P −−→ P 0

P −−→ P 0

(νz) a z

Q −−−−→ Q 0

τ

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

Open Bisimulation, Revisited

z 6∈ fn(P)

EXPRESS’05

5 / 25

Bisimulations

Outline

1

The pi-calculus

2

Bisimulations

3

The spi-calculus

4

K-open bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

6 / 25

Bisimulations

Bisimulation

Proof techniques for showing process equivalence

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

7 / 25

Bisimulations

Bisimulation

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

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

7 / 25

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

EXPRESS’05

7 / 25

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

EXPRESS’05

7 / 25

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

EXPRESS’05

7 / 25

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

EXPRESS’05

7 / 25

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

EXPRESS’05

7 / 25

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

EXPRESS’05

7 / 25

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

EXPRESS’05

7 / 25

Bisimulations

Substitutions

A substitution has finite domain

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

8 / 25

Bisimulations

Substitutions

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

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

8 / 25

Bisimulations

Substitutions

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

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

8 / 25

Bisimulations

Substitutions

A substitution has finite domain replaces something (a name) with 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

EXPRESS’05

8 / 25

Bisimulations

Substitutions

A substitution has finite domain replaces something (a name) with 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

EXPRESS’05

8 / 25

Bisimulations

Substitutions

A substitution has finite domain replaces something (a name) with 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

EXPRESS’05

8 / 25

Bisimulations

Substitutions

A substitution has finite domain replaces something (a name) with 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

EXPRESS’05

8 / 25

Bisimulations

Late and open Late bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

9 / 25

Bisimulations

Late and open Late bisimulation P | Q

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

9 / 25

Bisimulations

Late and open Late bisimulation P |

a(x)

−−→ P 0

Q

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

9 / 25

Bisimulations

Late and open Late bisimulation

Briais, Nestmann (EPFL)

a(x)

P |

−−→ P 0

Q

−−→

a(x)

Open Bisimulation, Revisited

EXPRESS’05

9 / 25

Bisimulations

Late and open Late bisimulation

Briais, Nestmann (EPFL)

a(x)

P |

−−→ P 0

Q

−−→ Q 0

a(x)

Open Bisimulation, Revisited

EXPRESS’05

9 / 25

Bisimulations

Late and 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

EXPRESS’05

9 / 25

Bisimulations

Late and 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

EXPRESS’05

9 / 25

Bisimulations

Late and 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

EXPRESS’05

9 / 25

Bisimulations

Late and 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

EXPRESS’05

9 / 25

Bisimulations

Late and 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

EXPRESS’05

9 / 25

Bisimulations

Late and 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

EXPRESS’05

9 / 25

Bisimulations

Late and 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

α

EXPRESS’05

9 / 25

Bisimulations

Late and 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

EXPRESS’05

9 / 25

Bisimulations

Late and 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

EXPRESS’05

9 / 25

Bisimulations

Late and 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. In the following, we concentrate on open. Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

9 / 25

Bisimulations

The lazy flavour of open

Briais, Nestmann (EPFL)

P

def

Q

def

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

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

Open Bisimulation, Revisited

EXPRESS’05

10 / 25

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

EXPRESS’05

10 / 25

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

EXPRESS’05

10 / 25

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 Open is “very late”

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

10 / 25

Bisimulations

Some properties of open

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

11 / 25

Bisimulations

Some properties of open

Contrary to early or late, it is a full congruence

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

11 / 25

Bisimulations

Some properties of open

Contrary to early or late, it is a full congruence It is easily implementable (Mobility Workbench, ABC)

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

11 / 25

Bisimulations

Some properties of open

Contrary to early or late, it is a full 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

EXPRESS’05

11 / 25

The spi-calculus

Outline

1

The pi-calculus

2

Bisimulations

3

The spi-calculus

4

K-open bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

12 / 25

The spi-calculus

The spi-calculus

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

13 / 25

The spi-calculus

The spi-calculus To model and study cryptographic protocols.

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

13 / 25

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

EXPRESS’05

13 / 25

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)

EXPRESS’05

13 / 25

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

EXPRESS’05

13 / 25

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

EXPRESS’05

14 / 25

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

EXPRESS’05

14 / 25

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

EXPRESS’05

14 / 25

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

EXPRESS’05

14 / 25

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

EXPRESS’05

14 / 25

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

EXPRESS’05

14 / 25

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

EXPRESS’05

14 / 25

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

EXPRESS’05

14 / 25

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

EXPRESS’05

14 / 25

The spi-calculus

Bisimulations in spi

Bisimulations of π-calculus are two strong

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

15 / 25

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

EXPRESS’05

15 / 25

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

EXPRESS’05

15 / 25

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

EXPRESS’05

15 / 25

K-open bisimulation

Outline

1

The pi-calculus

2

Bisimulations

3

The spi-calculus

4

K-open bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

16 / 25

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

EXPRESS’05

17 / 25

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

EXPRESS’05

17 / 25

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

EXPRESS’05

17 / 25

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

EXPRESS’05

17 / 25

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

EXPRESS’05

17 / 25

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

EXPRESS’05

17 / 25

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

EXPRESS’05

17 / 25

K-open bisimulation

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

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

18 / 25

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

EXPRESS’05

18 / 25

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

EXPRESS’05

18 / 25

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

EXPRESS’05

18 / 25

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

EXPRESS’05

18 / 25

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

EXPRESS’05

18 / 25

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

EXPRESS’05

19 / 25

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

EXPRESS’05

19 / 25

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

EXPRESS’05

19 / 25

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

EXPRESS’05

19 / 25

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

EXPRESS’05

19 / 25

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

EXPRESS’05

19 / 25

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

EXPRESS’05

19 / 25

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

EXPRESS’05

19 / 25

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

EXPRESS’05

19 / 25

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

EXPRESS’05

20 / 25

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

EXPRESS’05

20 / 25

K-open bisimulation

Some results We have

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

21 / 25

K-open bisimulation

Some results We have (C,V ,≺)

P ≈K

Briais, Nestmann (EPFL)

D(C,V ,≺)

Q ⇒ P ≈O

Open Bisimulation, Revisited

Q

EXPRESS’05

21 / 25

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

EXPRESS’05

21 / 25

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

EXPRESS’05

21 / 25

Conclusion and future work

Conclusion

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

22 / 25

Conclusion and future work

Conclusion

We have defined K-open bisimulation and proved it coincides with open whenever it is defined

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

22 / 25

Conclusion and future work

Conclusion

We have defined K-open bisimulation and proved it coincides with open whenever it is defined We conjecture that if D can be expressed in terms of (C, V , ≺), then ≈D O is more than a D-congruence

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

22 / 25

Conclusion and future work

Conclusion

We have defined K-open bisimulation and proved it coincides with open whenever it is defined We conjecture that if D can be expressed in terms of (C, V , ≺), then ≈D O is more than a D-congruence We have a proposal for an extension of K-open to spi which is sound w.r.t. barbed equivalence via late hedged bisimulation

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

22 / 25

Conclusion and future work

Future work

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

23 / 25

Conclusion and future work

Future work

Study the congruence properties of K-open

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

23 / 25

Conclusion and future work

Future work

Study the congruence properties of K-open Study the extension of K-open to spi

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

23 / 25

Conclusion and future work

Future work

Study the congruence properties of K-open Study the extension of K-open to spi I I

Link with symbolic bisimulation of [BBN04] Congruence properties

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

23 / 25

Thank you!

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

24 / 25

Thank you! Questions?

Briais, Nestmann (EPFL)

Open Bisimulation, Revisited

EXPRESS’05

24 / 25

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

EXPRESS’05

25 / 25