C Proof of Theorem 4.1: Main Lemmas
C.3 Observational Equivalence implies Labelled Bisimilarity
Finally, the goal of this section is to establish the lemmas needed in the outline of the argu-ment that observational equivalence implies labelled bisimilarity in Section 4.5. The section also contains a corollary, namely that observational equivalence and static equivalence co-incide on frames.
Lemma C.6 Let P be a plain process. The existence of P0 such that Σ ` P = P0 and p /∈ fn(P0) is preserved by structural equivalence (≡) and reduction (→ ) of P .
Let A be a normal process. The existence of A0 such that Σ ` A = A0 and p /∈ fn(A0) is preserved by structural equivalence (≡) and reduction (→◦ ◦) of A.
Proof: Property 1: Suppose that P ≡ Q, Σ ` P = P 0, and p /∈ fn(P0). We show that there exists Q0 such that Σ ` Q = Q0 and p /∈ fn(Q0), by induction on the derivation of P ≡ Q. We consider as base cases the application of each rule under an evaluation context, in the two directions, and use induction only for transitivity.
• Case Rewrite0, under an evaluation context E. We have E[P1{M/x}]≡ E[P 1{N/x}], Σ ` M = N , Σ ` E[P1{M/x}] = P0, and p /∈ fn(P0). Since Σ ` E[P1{N/x}] = E[P1{M/x}] = P0, we have the result with Q0= Q.
• Case Par-C0, under an evaluation context E. We have E[P1| Q1] ≡ E[Q 1 | P1], Σ ` E[P1|Q1] = P0, and p /∈ fn(P0). Since Σ ` E[P1|Q1] = P0, we have P0= E0[P10|Q01] with Σ ` E = E0, Σ ` P1 = P10, and Σ ` Q1 = Q01. Let Q0 = E0[Q01| P10]. We have Σ ` E[Q1| P1] = Q0 and p /∈ fn(Q0) = fn(P0).
• All other base cases are handled similarly to case Par-C0.
• The case of transitivity follows by applying the induction hypothesis twice.
Property 2: Suppose that P →Q, Σ ` P = P0, and p /∈ fn(P0). We show that there exists Q0such that Σ ` Q = Q0and p /∈ fn(Q0), by induction on the derivation of P →Q. Again, we consider as base cases the application of each rule under an evaluation context, and use induction only for the application of≡.
• Case Comm0, under an evaluation context E. We have E[N hM i.P1| N (x).Q1] → E[P1 | Q1{M/x}], Σ ` E[N hM i.P1| N (x).Q1] = P0, and p /∈ fn(P0). Since Σ ` E[N hM i.P1|N (x).Q1] = P0, we have P0= E0[N0hM0i.P10|N00(x).Q01] with Σ ` E = E0, Σ ` M = M0, Σ ` P1= P10, and Σ ` Q1= Q01. Let Q0 = E0[P10| Q01{M0/x}]. We have Σ ` E[P1| Q1{M/x}] = Q0 and p /∈ fn(Q0) since fn(Q0) ⊆ fn(P0).
• Case Then0, under an evaluation context E. We have E[if M = M then P1 else Q1] → E[P1], Σ ` E[if M = M then P1 else Q1] = P0, and p /∈ fn(P0). Since Σ ` E[if M = M then P1 else Q1] = P0, we have P0 = E0[if M0 = M00 then P10 else Q01] with Σ ` E = E0 and Σ ` P1 = P10. Let Q0 = E0[P10]. We have Σ ` E[P1] = Q0 and p /∈ fn(Q0) since fn(Q0) ⊆ fn(P0).
• Case Else0 is handled similarly to case Then0.
• In case we additionally apply ≡, we conclude using Property 1 and the induction hypothesis.
Property 3: Suppose that A≡ B, Σ ` A = A◦ 0, and p /∈ fn(A0). We show that there exists B0 such that Σ ` B = B0 and p /∈ fn(B0), by induction on the derivation of A≡ B.◦
• Case Plain00follows from Property 1.
• Case New-Par00. We have νn.(σ | νne 0.P ) ≡ ν◦ n, ne 0.(σ | P ) with n0 ∈ fn(σ), Σ `/ νen.(σ | νn0.P ) = A0, and p /∈ fn(A0). If p ∈ {en, n0}, then we have the result with B0 = νn, ne 0.(σ | P ). Otherwise, since Σ ` νen.(σ | νn0.P ) = A0, we have A0 = νen.(σ0| νn0.P0) with Σ ` σ = σ0 and Σ ` P = P0. Let B0 = νn, ne 0.(σ0 | P0). We have Σ ` νen, n0.(σ | P ) = B0 and p /∈ fn(B0) since fn(B0) ⊆ fn(A0).
• Case New-Par00 reversed. We have νen, n0.(σ | P )≡ ν◦ en.(σ | νn0.P ) with n0 ∈ fn(σ),/ Σ ` νen, n0.(σ | P ) = A0, and p /∈ fn(A0). If p ∈ {en}, then we have the result with B0= νen.(σ | νn0.P ). If p = n0, then we also have the result with B0= νn.(σ | νne 0.P ) because n0 ∈ fn(σ). Otherwise, since Σ ` ν/ n, ne 0.(σ | P ) = A0, we have A0= νn, ne 0.(σ0| P0) with Σ ` σ = σ0and Σ ` P = P0. Let B0= νn.(σe 0|νn0.P0). We have Σ ` νn.(σ|νne 0.P ) = B0 and p /∈ fn(B0).
• Case New-C00is handled similarly to case New-Par00.
• Case Rewrite00. We have νen.(σ|P )≡ ν◦ en.(σ0|P ) with Σ ` σ = σ0, Σ ` νen.(σ|P ) = A0, and p /∈ fn(A0). Since Σ ` νen.(σ0| P ) = νn.(σ | P ) = Ae 0, we have the result with B0 = A0.
• The case of transitivity follows by applying the induction hypothesis twice.
Property 4: Suppose that A →◦ B, Σ ` A = A0, and p /∈ fn(A0). We show that there exists B0 such that Σ ` B = B0 and p /∈ fn(B0). Suppose νen.(σ | P ) →◦ νn.(σ | Q) withe P → Q, Σ ` νen.(σ | P ) = A0, and p /∈ fn(A0). If p ∈ {n}, then we have the result withe B0 = νen.(σ | Q). Otherwise, since Σ ` νen.(σ | P ) = A0, we have A0 = νn.(σe 0 | P0) with Σ ` σ = σ0 and Σ ` P = P0. Since p /∈ fn(A0) and p /∈ {en}, p /∈ fn(σ0) ∪ fn(P0). By Property 2, there exists Q0 such that Σ ` Q = Q0 and p /∈ fn(Q0). Let B0 = νen.(σ0| Q0).
We have Σ ` νn.(σ | Q) = Be 0 and p /∈ fn(B0). In case we additionally apply≡, we conclude◦ using Property 3 and the induction hypothesis.
Lemma C.7 If p /∈ fn(A), then A 6⇓ p.
Proof: In order to obtain a contradiction, suppose that A ⇓ p, that is, that A →∗≡ E[phM i.P ] for some M , P , and evaluation context E[ ] that does not bind p. Hence, pnf(A) →◦∗ ◦≡ E[phM i.P ] for some M , P , and evaluation context E[ ] that does not bind p. Let A1 = pnf(A). We have p /∈ fn(A1). By Lemma C.6, the existence of A0 such that Σ ` A1= A0 and p /∈ fn(A0) is preserved by structural equivalence and reduction of A1, so there exists A0 such that Σ ` E[phM i.P ] = A0 and p /∈ fn(A0). Hence, there exists N such that Σ ` p = N and p /∈ fn(N ). Since the equational theory is preserved by substitution of terms for names, for all N0, Σ ` p{N0/p} = N {N0/p}, that is Σ ` N0 = N , which contradicts the assumption that the equational theory is non-trivial.
Lemma C.8 If p /∈ fn(P ) and P →∗ νx.N hxi−−−−−→A or P →∗ N (M )−−−−→A, then Σ ` N 6= p.
Proof: The proof uses ideas similar to the proof of Lemma C.7. By Lemma B.10, P →∗ ≡ νn.(N hM i.Pe 1|P2) for somen, M , Pe 1, P2with {n}∩fn(N ) = ∅, or P →e ∗ ≡ νen.(N (x).P1|P2) for some for someen, x, P1, P2 with {en} ∩ fn(N ) = ∅. By Lemma C.6, the existence of P0 such that Σ ` P = P0 and p /∈ fn(P0) is preserved by structural equivalence and reduction of P , so there exists N0 such that Σ ` N = N0 and p /∈ fn(N0). If we had Σ ` N = p, then we would have Σ ` p = N0 and p /∈ fn(N0), which yields a contradiction as in the proof of Lemma C.7. So Σ ` N 6= p.
Lemma C.9 ≈ ⊆ ≈s.
Proof: If A and B are observationally equivalent, then A | C and B | C have the same barbs for every C with fv (C) ⊆ dom(A). In particular, A | C and B | C have the same barb ⇓ a for every C of the special form if M = N then ahsi, where a does not occur in A or B and fv (C) ⊆ dom(A), that is, fv (M ) ∪ fv (N ) ⊆ dom(A). We obtain that A and B are statically equivalent, using the following property: assuming that A is closed, fv (M ) ∪ fv (N ) ⊆ dom(A), and a does not occur in A, we have (M = N )ϕ(A) if and only if A | if M = N then ahsi ⇓ a. We show this property below.
Let pnf(A) = νen.(σ | P ). We renameen so that {en} ∩ (fn(M ) ∪ fn(N ) ∪ {a}) = ∅. If (M = N )ϕ(A), then M σ = N σ, so A | if M = N then ahsi ≡ νn.(σ | P | if M σ = N σ then ahsi) →e νn.(σ|P |ahsi), so we conclude that A|if M = N then ahsi ⇓ a. Conversely, in order to obtaine a contradiction, suppose that (M 6= N )ϕ(A) and A | if M = N then ahsi ⇓ a. Lemma 4.11 implies that A | if M = N then ahsi →∗ νx.ahxi−−−−−→ A0 for some fresh variable x and some A0. So pnf(A | if M = N then ahsi) = νen.(σ | P | if M σ = N σ then ahsi) →◦∗ νx.ahxi−−−−−→◦A0 by Lemmas B.8 and B.12. Then P | if M σ = N σ then ahsi →∗ νx.ahxi−−−−−→A00, A0≡ νen.(σ | A00), and x /∈ dom(σ) for some A00 by Lemmas B.23 and B.19. We have a /∈ fn(pnf(A)), so
a /∈ fn(P ). We show by induction on the length of the trace, that it is impossible to have P | if M σ = N σ then ahsi →∗ νx.ahxi−−−−−→A00.
• If this trace contains a single step, then P | if M σ = N σ then ahsi−−−−−→νx.ahxi A00, so by Lemma B.18, P −−−−−→νx.ahxi , which yields a contradiction by Lemma C.8.
• If this trace contains several steps, the first step is an internal reduction, so by Lemma B.24, either P reduces, and we conclude by induction hypothesis, or if M σ = N σ then ahsi reduces to 0 and P | 0 →∗ νx.ahxi−−−−−→A00, which yields a contradiction by Lemma C.8.
Lemma C.10 Let en be pairwise distinct names. Letne0 be pairwise distinct names that do not occur in P nor in P0.
If P ≡ P 0 and Σ ` P = P {en0/
en}, then P {ne0/
en}≡ P 0{en0/
en} and Σ ` P0= P0{en0/
en}.
If P →P0 and Σ ` P = P {en0/
en}, then P {en0/
ne} →P0{ne0/
en} and Σ ` P0= P0{ne0/
en}.
Proof: By induction on the derivations of P ≡ P 0 and P →P0, respectively.
Proof of Lemma 4.13(1) Let pnf(A) = νn.(σ | P ). We renamee en so that these names do not occur in N , M , p. By Lemma B.12, pnf(A)−−−−→N (M ) ◦A0. By Lemma B.19, P −N σ(M σ)−−−−−→
A00 and A0 ≡ νen.(σ | A00) for some A0. By Lemma B.10, P ≡ ν en0.(N σ(x0).P1| P2), A00 ≡ νne0.(P1{M σ/x0} | P2), {en0} ∩ fn(N σ(M σ)) = ∅, for somene0, P1, P2, x0. We renamene0 so that p /∈ {ne0}. Hence, by Lemmas B.1 and B.7,
A | phpi | N hM i.p(x) ≡ pnf(A) | phpi | N hM i.p(x)
≡ νn.(σ | νe en0.(N σ(x0).P1| P2)) | phpi | N hM i.p(x)
≡ νn.(σ | νe en0.(N σ(x0).P1| P2| phpi | N σhM σi.p(x)))
→ νen.(σ | νen0.(P1{M σ/x0} | P2| phpi | p(x)))
→ νen.(σ | νen0.(P1{M σ/x0} | P2))
≡ νn.(σ | Ae 00)
≡ A0
Since p /∈ fn(A0), we have A06⇓ p by Lemma C.7.
Proof of Lemma 4.13(2) Let pnf(A) = νen.(σ | P ). By Lemma B.2, pnf(A) is closed. We renamen so that these names do not occur in N , M , p. Then pnf(A | phpi | N hM i.p(x)) =e νn.(σ | P | phpi | N σhM σi.p(x)). By Lemma B.8, pnf(A | phpi | N hM i.p(x)) →e ◦∗pnf(A0). By Lemma B.23 applied several times, P | phpi | N σhM σi.p(x) →∗P0and pnf(A0) ≡ νen.(σ | P0) for some closed process P0. Since A0 6⇓ p, we have P0 6⇓ p. (If we had P0 ⇓ p, we would immediately obtain A0⇓ p by definition of ⇓ p.)
We prove that, if P is a closed process, P | phpi | p(x) →∗ P0, P0 6⇓ p, and p /∈ fn(P ), then P ≡→ ∗P0, by induction on the length of the trace. Since P | phpi | p(x) ⇓ p, the trace P | phpi | p(x) →∗P0 has at least one step: P | phpi | p(x) →P1→∗P0. By Lemmas B.24, B.18, and C.8, the only cases that can happen in the first step are:
• P → P00 and P00| phpi | p(x) ≡ P1 →∗ P0 for some closed process P00. As above this trace has at least one step, so P00| phpi | p(x) →∗ P0. By Lemma C.10, we rename p inside P00so that p /∈ fn(P00), and we obtain the desired result by induction hypothesis.
• phpi−−−−−→νy.N hyi A1 ≡ {p/y}, p(x)−−−→N (y) A2 ≡ 0, Σ ` N = p, P1 ≡ P | νy.(A1| A2) ≡ P | νy.({p/y} | 0) ≡ P so P | phpi | p(x) →P ≡ P 1→∗P0, so we obtain P ≡→ ∗P0 as desired.
Next, we prove that, if P | phpi | N σhM σi.p(x) is a closed process, P | phpi | N σhM σi.p(x) →∗P0, P0 6⇓ p, and p /∈ fn(P ) ∪ fn(N σ) ∪ fn(M σ), then P →∗ N σ(M σ)−−−−−−→→∗ P0, by induction on the length of the trace. Since P | phpi | N σhM σi.p(x) ⇓ p, the trace P | phpi | N σhM σi.p(x) →∗P0has at least one step: P | phpi | N σhM σi.p(x) →P1→∗P0. By Lemmas B.24, B.18, and C.8, the only cases that can happen in the first step are:
• P → P00 and P00| phpi | N σhM σi.p(x) ≡ P1 →∗ P0 for some closed process P00. As above this trace has at least one step, so P00| phpi | N σhM σi.p(x) →∗ P0. By Lemma C.10, we rename p inside P00 so that p /∈ fn(P00), and we obtain the desired result by induction hypothesis.
• P N
0(y)
−−−−→B, N σhM σi.p(x) νy.N
0hyi
−−−−−−→B0, and P1≡ νy.(B |phpi|B0). By Lemma B.10, P ≡ ν ne0.(N0(z).P2 | P3), B ≡ νne0.(P2{y/z} | P3), and {ne0} ∩ fn(N0) = ∅ for some ne0, z, P2, and P3. By Lemma B.18, Σ ` N σ = N0, y /∈ fv (N σhM σi.p(x)), and B0 ≡ p(x) | {M σ/y}. We rename en0 so that these names do not appear in M σ and are distinct from p. By Lemma C.10, we rename p inside νne0.(N0(z).P2| P3) so that p /∈ fn(νne0.(N0(z).P2| P3)), so p /∈ fn(P2) ∪ fn(P3). Hence P1≡ νy.(νne0.(P2{y/z} | P3) | phpi | {M σ/y} | p(x)) ≡ νne0.(P2{M σ/z} | P3) | phpi | p(x). We have P ≡ ν en0.(N0(z).P2| P3) −N σ(M σ)−−−−−→ νne0.(P2{M σ/z} | P3). Let P4 = νen0.(P2{M σ/z} | P3). We have then P −N σ(M σ)−−−−−→P4 and P4| phpi | p(x) ≡ P1 →∗ P0. By Lemma B.16(3), we transform P4into a closed process that satisfies the same properties. Since P06⇓ p, this trace has at least one step, so P4| phpi | p(x) →∗P0. Since p /∈ fn(P4), by the property shown above, P4
≡→ ∗P0, so P −N σ(M σ)−−−−−→→∗P0.
To sum up, we have A ≡ pnf(A) = νn.(σ | P ), P →e ∗ P5
N σ(M σ)
−−−−−−→ P6 →∗ P0, and A0 ≡ pnf(A0) ≡ νen.(σ | P0). So νen.(σ | P ) →◦∗νen.(σ | P5)−−−−→N (M ) ◦νen.(σ | P6) →◦∗νen.(σ | P0).
Hence by Lemmas B.9 and B.13, A →∗ N (M )−−−−→→∗A0.
Proof of Lemma 4.14(1) Let pnf(A) = νen.(σ | P ). By Lemma B.2, pnf(A) is closed. We renameen so that these names do not occur in N , p, and q. By Lemma B.12, pnf(A)−−−−−→νx.N hxi ◦ A0. By Lemma B.19, P −−−−−−→νx.N σhxi A00, A0 ≡ νen.(σ | A00), and x /∈ dom(σ) for some A00. By Lemma B.10, P ≡ ν en0.(N σhM i.P1| P2), A00≡ νne0.(P1| {M/x} | P2), {en0} ∩ fn(N σ) = ∅, and x /∈ fv (N σhM i.P1| P2)) for someen0, P1, P2, M . We renameen0 so that p, q /∈ {ne0} and y so that y /∈ fv (M ). Hence, by Lemmas B.1 and B.7,
A | phpi | N (x).p(y).qhxi ≡ pnf(A) | phpi | N (x).p(y).qhxi
≡ νen.(σ | νen0.(N σhM i.P1| P2)) | phpi | N (x).p(y).qhxi
≡ νen.(σ | νen0.(N σhM i.P1| P2| phpi | N (x).p(y).qhxi))
→ νen.(σ | νne0.(P1| P2| phpi | p(y).qhM i))
→ νen.(σ | νne0.(P1| P2| qhM i))
≡ νx.νen.(σ | νen0.(P1| {M/x} | P2| qhxi))
≡ νx.(νen.(σ | A00) | qhxi)
≡ νx.(A0| qhxi)
Since p /∈ fn(νx.(A0| qhxi)), we have νx.(A0| qhxi) 6⇓ p by Lemma C.7.
Proof of Lemma 4.14(2) Let pnf(A) = νen.(σ | P ). By Lemma B.2, pnf(A) is closed. We renameen so that these names do not occur in N , p, q. Then pnf(A | phpi | N (x).p(y).qhxi) = νn.(σ |P |phpi|N σ(x).p(y).qhxi). By Lemma B.8, pnf(A|phpi|N (x).p(y).qhxi) →e ◦∗pnf(A00).
By Lemma B.23 applied several times, P | phpi | N σ(x).p(y).qhxi →∗ P00 and pnf(A00) ≡ νn.(σ | Pe 00) for some closed process P00. Since A006⇓ p, we have P006⇓ p.
We prove that, if P2 and M0 are closed, P2| qhM0i ≡→ ∗ P00, and q /∈ fn(P2), then P00≡ P3| qhM0i and P2 →∗ P3 for some closed process P3, by induction on the length of the trace P2| qhM0i≡→ ∗P00. If this trace has zero reduction steps, then the result holds obviously with P3 = P2. If this trace has at least one reduction step, then P2| qhM0i →
P4→∗P00, so by Lemmas B.24 and C.8, the only case that can happen is that P2→ P20 and P20| qhM0i ≡ P4 →∗ P00 for some closed process P20. By Lemma C.10, we rename q inside P20 so that q /∈ fn(P20), and we obtain the desired result by induction hypothesis.
Next, we prove that, if P1and M0 are closed, P1| phpi | p(y).qhM0i →∗P00, P006⇓ p, and p, q /∈ fn(P1), then P00≡ P3| qhM0i and P1→∗P3for some closed process P3, by induction on the length of the trace. Since P1| phpi | p(y).qhM0i ⇓ p, the trace P1| phpi | p(y).qhM0i →∗ P00 has at least one step: P1| phpi | p(y).qhM0i → P10 →∗ P00. By Lemmas B.24, B.18, and C.8, the only cases that can happen in the first step are:
• P1→P100and P100|phpi|p(y).qhM0i ≡ P10→∗P00for some closed process P100. As above this trace has at least one step, so P100| phpi | p(y).qhM0i →∗P00. By Lemma C.10, we rename p and q inside P100 so that p, q /∈ fn(P100), and we obtain the desired result by induction hypothesis.
• phpi −−−−−→νz.N hzi A1 ≡ {p/z}, p(y).qhM0i−−−→N (z) A2 ≡ qhM0i, P10 ≡ P1| νz.(A1| A2) ≡ P1| νz.({p/z} | qhM0i) ≡ P1| qhM0i so P1| phpi | p(y).qhM0i →P1| qhM0i≡ P 10 →∗P00 and q /∈ fn(P1), so by the property shown above, P00≡ P3| qhM0i and P1→∗P3 for some closed process P3, as desired.
Finally, we prove that, if P and N σ are closed, P | phpi | N σ(x).p(y).qhxi →∗P00, P006⇓ p, and p, q /∈ fn(P ) ∪ fn(N σ), then P →∗ νx.N σhxi−−−−−−→→∗ B and P00 ≡ νx.(B | qhxi) for some B, by induction on the length of the trace. Since P | phpi | N σ(x).p(y).qhxi ⇓ p, the trace P |phpi|N σ(x).p(y).qhxi →∗P00has at least one step: P |phpi|N σ(x).p(y).qhxi →P1→∗
P00. By Lemmas B.24, B.18, and C.8, the only cases that can happen in the first step are:
• P → P0 and P0 | phpi | N σ(x).p(y).qhxi ≡ P1 →∗ P00 for some closed process P0. As above this trace has at least one step, so P0| phpi | N σ(x).p(y).qhxi →∗ P00. By Lemma C.10, we rename p and q inside P0 so that p, q /∈ fn(P0), and we obtain the desired result by induction hypothesis.
• P −−−−−→νz.N0hzi B0, N σ(x).p(y).qhxi N
0(z)
−−−→ B00, and P1 ≡ νz.(B0 | phpi | B00). By Lemma B.10, P ≡ ν en0.(N0hM0i.P2| P3), B0≡ νne0.(P2| {M0/z} | P3), {en0} ∩ fn(N0) = ∅, and z /∈ fv (N0hM0i.P2| P3). By Lemma B.18, Σ ` N σ = N0 and B00 ≡ p(y).qhzi.
Using Lemma B.16(1), we can guarantee that N0, M0, P2, P3 are closed. We re-name en0 so that these names are distinct from p and q. By Lemma C.10, we re-name p and q inside νen0.(N0hM0i.P2| P3) so that p, q /∈ fn(νne0.(N0hM0i.P2| P3)). So
P1≡ νz.(B0| phpi | B00) ≡ νz.(νen0.(P2| {M0/z} | P3) | phpi | p(y).qhzi) ≡ νen0.(P2| P3| phpi | p(y).qhM0i). Since P1 →∗ P00 and this trace has at least one step because P1 ⇓ p and P00 6⇓ p, we have νen0.(P2| P3| phpi | p(y).qhM0i) →∗ P00, so by Lemma B.21, P2| P3| phpi | p(y).qhM0i →∗P4and P00≡ νen0.P4for some P4. Since p, q /∈ fn(P2| P3), by the previous result, P2| P3 →∗ P5 and P4 ≡ P5| qhM0i for some closed process P5. Therefore, we have P00 ≡ νen0.(P5| qhM0i) ≡ νx.(νen0.(P5| {M0/x}) | qhxi) and P ≡ ν ne0.(N0hM0i.P2| P3)−−−−−−→νx.N σhxi νen0.(P2| {M0/x} | P3) →∗ νne0.(P5| {M0/x}). Let B def= νen0.(P5| {M0/x}). Then we have P −−−−−−→νx.N σhxi →∗B and P00≡ νx.(B | qhxi).
To sum up, we have A ≡ pnf(A) = νen.(σ | P ), P →∗ νx.N σhxi−−−−−−→→∗ B, and P00 ≡ νx.(B | qhxi), so A00≡ pnf(A00) ≡ νen.(σ | P00) ≡ νen.(σ | νx.(B | qhxi)) ≡ νx.(νen.(σ | B) | qhxi) since x /∈ fv (σ). Let A0 def= νen.(σ |B). So pnf(A) →◦∗ νx.N hxi−−−−−→◦→∗A0. Hence by Lemmas B.9 and B.13, A →∗ νx.N hxi−−−−−→→∗A0 and A00≡ νx.(A0| qhxi).
Lemma C.11 Let A and B be two closed extended processes.
• Let σ be a bijective renaming. We have A ≈ B if and only if Aσ ≈ Bσ.
• Let A0 and B0 be obtained from A and B, respectively, by replacing all variables (in-cluding their occurrences in domains of active substitutions) with distinct variables.
We have A ≈ B if and only if A0 ≈ B0.
Proof: To prove the first point, we define a relation R by A0R B0 if and only if A0 = Aσ, B0 = Bσ, and A ≈ B for some A and B. We show that R satisfies the three properties of Definition 4.1. Then R ⊆ ≈, so if A ≈ B, then A0 = Aσ ≈ B0= Bσ.
1. If A0 R B0 and A0 ⇓ a, then A0 →∗≡ E[ahM i.P ] for some evaluation context E that does not bind a. Then, by Lemma C.4, A = A0σ−1 →∗≡ Cσ−1[aσ−1hM σ−1i.P σ−1], so A ⇓ aσ−1. By definition of ≈, B ⇓ aσ−1, so B0⇓ a as above.
2. If A0R B0, A0→ A01, and A01is closed, then by Lemma C.4, A = A0σ−1 → A01σ−1. We let A00 = A01σ−1, which is also closed. So by definition of ≈, B →∗B00and A00≈ B00 for some B00. By Lemma C.4, B0= Bσ →∗B00σ. We let B10 = B00σ. We have A01R B10 and B0→∗B10. So Property 2 holds.
3. If A0 R B0, then A = A0σ−1 ≈ B0σ−1 = B, so E[A0]σ−1 = Eσ−1[A] ≈ Eσ−1[B] = E[B0]σ−1, hence E[A0] R E[B0].
The same argument also proves the converse, via the inverse renaming.
The proof of the second point is similar.
Lemma C.12 If M is ground, fv (P ) ⊆ {x}, and a /∈ fn(P ) ∪ fn(M ), then νa.(ahM i | a(x).P ) ≈ P {M/x}.
Proof: By Lemma 4.12, it is enough to prove that νa.(ahM i | a(x).P ) ≈l P {M/x}. Let A1= νa.(ahM i | a(x).P ) and B1= P {M/x}. Let R = {(A, B) | A and B are closed extended processes, A ≡ A1 and B ≡ B1, or A ≡ B1 and B ≡ A1} ∪ {(A, B) | A and B are closed extended processes and A ≡ B}. We show that R is a labelled bisimulation: R is symmetric and
1. We have A1≈sB1 since ϕ(A1) = 0 = ϕ(B1). Hence, if A R B, then A ≈sB.
2. If A1 → A0 and A0 is closed, then A0 ≡ B1. (This point can be proved in detail by
Proof of Lemma 4.15 We rely on the following property: if A is a closed extended pro-cess with {ex} ⊆ dom(A) and E
Let R be the relation that collects all closed extended processes A and B with a same domain that containsex, such that E
xe[A] ≈ E
ex[B], for somex and some namese enx that do not occur in A or B. We show that R is an observational bisimulation.
Assume A R B.
• We have E
ex[A] ⇓ n if and only n = nx for some x ∈x or A ⇓ n, and similarly for B,e hence E
ex[A] ⇓ n if and only if E
ex[A] ⇓ n.
• For the congruence property, we suppose that A R B, and we want to show that E[A] R E[B] for all closing evaluation contexts E. Using Lemma C.11, we show that R is invariant by renaming of free names and variables, so we can rename the free names and variables of E, so that the obtained context is simple. Then by Lemma A.1, we construct a context E0 of the form νeu.( | C00) such that E ≡ E0. Hence, it is
Since R is an observational bisimulation, R ⊆ ≈, so E
ex[A] ≈ E
ex[B] implies A ≈ B.
Corollary C.2 Observational equivalence and static equivalence coincide on frames.
Proof: Since frames do not reduce, static equivalence and labelled bisimilarity coincide on frames. By Theorem 4.1, we can then conclude.