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)
Pσ
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σ
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)
Pσ
α
− → P0
Qσ
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σ
− → P0
Qσ
− → 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