[STATEMENT]
lemma "P (Inl x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P (Inl x)
[PROOF STEP]
refute [expect = genuine]
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P (Inl x)
[PROOF STEP]
oops


[STATEMENT]
lemma eval_red2_Nml_Prim\<^sub>0:
    assumes "Ide t" and "Nml t" and "Src t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0"
    shows "\<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]
[PROOF STEP]
using assms \<rr>_ide_simp
[PROOF STATE]
proof (prove)
using this:
Ide t
Nml t
Src t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0
ide ?f \<Longrightarrow> \<rr> ?f = \<r>[?f]

goal (1 subgoal):
 1. \<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]
[PROOF STEP]
apply (cases t)
[PROOF STATE]
proof (prove)
goal (10 subgoals):
 1. \<And>x1. \<lbrakk>Ide t; Nml t; Src t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = \<^bold>\<langle>x1\<^bold>\<rangle>\<^sub>0\<rbrakk> \<Longrightarrow> \<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]
 2. \<And>x2. \<lbrakk>Ide t; Nml t; Src t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = \<^bold>\<langle>x2\<^bold>\<rangle>\<rbrakk> \<Longrightarrow> \<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]
 3. \<And>x31 x32. \<lbrakk>Ide t; Nml t; Src t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = x31 \<^bold>\<star> x32\<rbrakk> \<Longrightarrow> \<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]
 4. \<And>x41 x42. \<lbrakk>Ide t; Nml t; Src t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = x41 \<^bold>\<cdot> x42\<rbrakk> \<Longrightarrow> \<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]
 5. \<And>x5. \<lbrakk>Ide t; Nml t; Src t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = \<^bold>\<l>\<^bold>[x5\<^bold>]\<rbrakk> \<Longrightarrow> \<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]
 6. \<And>x6. \<lbrakk>Ide t; Nml t; Src t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = \<^bold>\<l>\<^sup>-\<^sup>1\<^bold>[x6\<^bold>]\<rbrakk> \<Longrightarrow> \<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]
 7. \<And>x7. \<lbrakk>Ide t; Nml t; Src t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = \<^bold>\<r>\<^bold>[x7\<^bold>]\<rbrakk> \<Longrightarrow> \<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]
 8. \<And>x8. \<lbrakk>Ide t; Nml t; Src t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = \<^bold>\<r>\<^sup>-\<^sup>1\<^bold>[x8\<^bold>]\<rbrakk> \<Longrightarrow> \<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]
 9. \<And>x91 x92 x93. \<lbrakk>Ide t; Nml t; Src t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = \<^bold>\<a>\<^bold>[x91, x92, x93\<^bold>]\<rbrakk> \<Longrightarrow> \<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]
 10. \<And>x101 x102 x103. \<lbrakk>Ide t; Nml t; Src t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = \<^bold>\<a>\<^sup>-\<^sup>1\<^bold>[x101, x102, x103\<^bold>]\<rbrakk> \<Longrightarrow> \<lbrace>t \<^bold>\<Down> \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrace> = \<r>[\<lbrace>t\<rbrace>]
[PROOF STEP]
apply simp_all
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>x1. \<lbrakk>C.obj a; x1 = a; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrakk> \<Longrightarrow> \<ll> (E a) = \<r>[E a]
 2. \<And>x31 x32. \<lbrakk>Ide x31 \<and> Ide x32 \<and> Src x31 = Trg x32; Nml (x31 \<^bold>\<star> x32); Src x32 = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = x31 \<^bold>\<star> x32\<rbrakk> \<Longrightarrow> \<rr> (\<lbrace>x31\<rbrace> \<star> \<lbrace>x32\<rbrace>) = \<r>[\<lbrace>x31\<rbrace> \<star> \<lbrace>x32\<rbrace>]
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>x1. \<lbrakk>C.obj a; x1 = a; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrakk> \<Longrightarrow> \<ll> (E a) = \<r>[E a]
 2. \<And>x31 x32. \<lbrakk>Ide x31 \<and> Ide x32 \<and> Src x31 = Trg x32; Nml (x31 \<^bold>\<star> x32); Src x32 = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = x31 \<^bold>\<star> x32\<rbrakk> \<Longrightarrow> \<rr> (\<lbrace>x31\<rbrace> \<star> \<lbrace>x32\<rbrace>) = \<r>[\<lbrace>x31\<rbrace> \<star> \<lbrace>x32\<rbrace>]
[PROOF STEP]
show "C.obj a \<Longrightarrow> t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0 \<Longrightarrow> \<ll> (E a) = \<r>[E a]"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>C.obj a; t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrakk> \<Longrightarrow> \<ll> (E a) = \<r>[E a]
[PROOF STEP]
using unitor_coincidence obj_eval_Obj [of t] \<ll>_ide_simp
[PROOF STATE]
proof (prove)
using this:
obj ?a \<Longrightarrow> \<l>[?a] = \<i>[?a]
obj ?a \<Longrightarrow> \<r>[?a] = \<i>[?a]
Obj t \<Longrightarrow> obj \<lbrace>t\<rbrace>
ide ?f \<Longrightarrow> \<ll> ?f = \<l>[?f]

goal (1 subgoal):
 1. \<lbrakk>C.obj a; t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrakk> \<Longrightarrow> \<ll> (E a) = \<r>[E a]
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<lbrakk>C.obj a; t = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0\<rbrakk> \<Longrightarrow> \<ll> (E a) = \<r>[E a]

goal (1 subgoal):
 1. \<And>x31 x32. \<lbrakk>Ide x31 \<and> Ide x32 \<and> Src x31 = Trg x32; Nml (x31 \<^bold>\<star> x32); Src x32 = \<^bold>\<langle>a\<^bold>\<rangle>\<^sub>0; \<And>f. ide f \<Longrightarrow> \<rr> f = \<r>[f]; t = x31 \<^bold>\<star> x32\<rbrakk> \<Longrightarrow> \<rr> (\<lbrace>x31\<rbrace> \<star> \<lbrace>x32\<rbrace>) = \<r>[\<lbrace>x31\<rbrace> \<star> \<lbrace>x32\<rbrace>]
[PROOF STEP]
show "\<And>b c. Ide b \<and> Ide c \<and> Src b = Trg c \<Longrightarrow> \<rr> (\<lbrace>b\<rbrace> \<star> \<lbrace>c\<rbrace>) = \<r>[\<lbrace>b\<rbrace> \<star> \<lbrace>c\<rbrace>]"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>b c. Ide b \<and> Ide c \<and> Src b = Trg c \<Longrightarrow> \<rr> (\<lbrace>b\<rbrace> \<star> \<lbrace>c\<rbrace>) = \<r>[\<lbrace>b\<rbrace> \<star> \<lbrace>c\<rbrace>]
[PROOF STEP]
using \<rr>_ide_simp
[PROOF STATE]
proof (prove)
using this:
ide ?f \<Longrightarrow> \<rr> ?f = \<r>[?f]

goal (1 subgoal):
 1. \<And>b c. Ide b \<and> Ide c \<and> Src b = Trg c \<Longrightarrow> \<rr> (\<lbrace>b\<rbrace> \<star> \<lbrace>c\<rbrace>) = \<r>[\<lbrace>b\<rbrace> \<star> \<lbrace>c\<rbrace>]
[PROOF STEP]
by (simp add: eval_simps' ide_eval_Ide)
[PROOF STATE]
proof (state)
this:
Ide ?b \<and> Ide ?c \<and> Src ?b = Trg ?c \<Longrightarrow> \<rr> (\<lbrace>?b\<rbrace> \<star> \<lbrace>?c\<rbrace>) = \<r>[\<lbrace>?b\<rbrace> \<star> \<lbrace>?c\<rbrace>]

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma tauLaw2:
  fixes \<Psi> :: 'b
  and   P :: "('a, 'b, 'c) psi"

  shows "\<Psi> \<rhd> P \<oplus> \<tau>.(P) \<approx> \<tau>.(P)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<approx> \<tau>.P
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<approx> \<tau>.P
[PROOF STEP]
let ?X = "{(\<Psi>, P \<oplus> \<tau>.(P), \<tau>.(P)) | \<Psi> P. True}"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<approx> \<tau>.P
[PROOF STEP]
let ?Y = "{(\<Psi>, \<tau>.(P), P \<oplus> \<tau>.(P)) | \<Psi> P. True}"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<approx> \<tau>.P
[PROOF STEP]
have "(\<Psi>, P \<oplus> \<tau>.(P), \<tau>.(P)) \<in> ?X \<union> ?Y"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<approx> \<tau>.P
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<approx> \<tau>.P
[PROOF STEP]
have "eqvt(?X \<union> ?Y)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. eqvt ({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True})
[PROOF STEP]
by(auto simp add: eqvt_def eqvts)
[PROOF STATE]
proof (state)
this:
eqvt ({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True})

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<approx> \<tau>.P
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}
eqvt ({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True})
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}
eqvt ({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True})

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<approx> \<tau>.P
[PROOF STEP]
proof(coinduct rule: weakTransitiveCoinduct)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
 2. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 3. \<And>\<Psi> P Q \<Psi>'. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi> \<otimes> \<Psi>', P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
 4. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
case(cStatImp \<Psi> P Q)
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (4 subgoals):
 1. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
 2. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 3. \<And>\<Psi> P Q \<Psi>'. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi> \<otimes> \<Psi>', P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
 4. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
proof(cases "(\<Psi>, P, Q) \<in> ?X")
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
 2. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
case True
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}

goal (2 subgoals):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
 2. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
note \<open>(\<Psi>, P, Q) \<in> ?X\<close>
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}

goal (2 subgoals):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
 2. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}

goal (2 subgoals):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
 2. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}

goal (2 subgoals):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
 2. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
fix \<Psi> P
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. (\<Psi>'__, Pa__, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
 2. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
have "\<And>\<Psi>'. (\<Psi> \<otimes> \<Psi>', P \<oplus> \<tau>.(P), \<tau>.(P)) \<in> ?X \<union> ?Y \<union> weakBisim"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>\<Psi>'. (\<Psi> \<otimes> \<Psi>', P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> ?\<Psi>'3, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim

goal (2 subgoals):
 1. (\<Psi>'__, Pa__, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
 2. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
hence "\<Psi> \<rhd> P \<oplus> \<tau>.(P) \<lessapprox><(?X \<union> ?Y \<union> weakBisim)> \<tau>.(P)"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> ?\<Psi>'3, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> \<tau>.P
[PROOF STEP]
by(rule tauLaw2StatImpLeft)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> \<tau>.P

goal (2 subgoals):
 1. (\<Psi>'__, Pa__, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
 2. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
?\<Psi>''5 \<rhd> ?Pb5 \<oplus>\<^sub>\<top> \<tau>.?Pb5 \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> \<tau>.?Pb5

goal (2 subgoals):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
 2. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}
?\<Psi>''5 \<rhd> ?Pb5 \<oplus>\<^sub>\<top> \<tau>.?Pb5 \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> \<tau>.?Pb5
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}
?\<Psi>''5 \<rhd> ?Pb5 \<oplus>\<^sub>\<top> \<tau>.?Pb5 \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> \<tau>.?Pb5

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
case False
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
from \<open>(\<Psi>, P, Q) \<notin> ?X\<close> \<open>(\<Psi>, P, Q) \<in> ?X \<union> ?Y\<close>
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}
[PROOF STEP]
have "(\<Psi>, P, Q) \<in> ?Y"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
fix \<Psi> P
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
have "\<And>\<Psi>'. (\<Psi> \<otimes> \<Psi>', \<tau>.(P), P \<oplus> \<tau>.(P)) \<in> ?X \<union> ?Y \<union> weakBisim"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>\<Psi>'. (\<Psi> \<otimes> \<Psi>', \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> ?\<Psi>'3, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim

goal (1 subgoal):
 1. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
hence "\<Psi> \<rhd> \<tau>.(P) \<lessapprox><(?X \<union> ?Y \<union> weakBisim)> P \<oplus> \<tau>.(P)"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> ?\<Psi>'3, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim

goal (1 subgoal):
 1. \<Psi> \<rhd> \<tau>.P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> P \<oplus>\<^sub>\<top> \<tau>.P
[PROOF STEP]
by(rule tauLaw2StatImpRight)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> \<tau>.P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> P \<oplus>\<^sub>\<top> \<tau>.P

goal (1 subgoal):
 1. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
?\<Psi>''5 \<rhd> \<tau>.?Pb5 \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> ?Pb5 \<oplus>\<^sub>\<top> \<tau>.?Pb5

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, P, Q) \<in> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}
?\<Psi>''5 \<rhd> \<tau>.?Pb5 \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> ?Pb5 \<oplus>\<^sub>\<top> \<tau>.?Pb5
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<in> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}
?\<Psi>''5 \<rhd> \<tau>.?Pb5 \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> ?Pb5 \<oplus>\<^sub>\<top> \<tau>.?Pb5

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<lessapprox><({(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim)> Q

goal (3 subgoals):
 1. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. \<And>\<Psi> P Q \<Psi>'. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi> \<otimes> \<Psi>', P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
 3. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. \<And>\<Psi> P Q \<Psi>'. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi> \<otimes> \<Psi>', P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
 3. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
case(cSim \<Psi> P Q)
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (3 subgoals):
 1. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. \<And>\<Psi> P Q \<Psi>'. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi> \<otimes> \<Psi>', P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
 3. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
let ?Z = "{(\<Psi>, P, S) | \<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> ?X \<union> ?Y \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}"
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. \<And>\<Psi> P Q \<Psi>'. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi> \<otimes> \<Psi>', P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
 3. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
proof(cases "(\<Psi>, P, Q) \<in> ?X")
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
case True
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}

goal (2 subgoals):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
note \<open>(\<Psi>, P, Q) \<in> ?X\<close>
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}

goal (2 subgoals):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}

goal (2 subgoals):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}

goal (2 subgoals):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
fix \<Psi> P
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. (\<Psi>'__, Pa__, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
have "\<And>\<Psi> P. (\<Psi>, P, P) \<in> ?Z"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>\<Psi> P. (\<Psi>, P, P) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}
[PROOF STEP]
by(blast intro: weakBisimReflexive bisimReflexive)
[PROOF STATE]
proof (state)
this:
(?\<Psi>3, ?P3, ?P3) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}

goal (2 subgoals):
 1. (\<Psi>'__, Pa__, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(?\<Psi>3, ?P3, ?P3) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}

goal (2 subgoals):
 1. (\<Psi>'__, Pa__, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
have "\<And>\<Psi> P Q R S. \<lbrakk>\<Psi> \<rhd> P \<sim> Q; (\<Psi>, Q, R) \<in> ?Z; \<Psi> \<rhd> R \<sim> S\<rbrakk> \<Longrightarrow> (\<Psi>, P, S) \<in> ?Z"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>\<Psi> P Q R S. \<lbrakk>\<Psi> \<rhd> P \<sim> Q; (\<Psi>, Q, R) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}; \<Psi> \<rhd> R \<sim> S\<rbrakk> \<Longrightarrow> (\<Psi>, P, S) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}
[PROOF STEP]
by(blast intro: bisimTransitive dest: bisimE(4))
[PROOF STATE]
proof (state)
this:
\<lbrakk>?\<Psi>3 \<rhd> ?P3 \<sim> ?Q3; (?\<Psi>3, ?Q3, ?R3) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}; ?\<Psi>3 \<rhd> ?R3 \<sim> ?S3\<rbrakk> \<Longrightarrow> (?\<Psi>3, ?P3, ?S3) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}

goal (2 subgoals):
 1. (\<Psi>'__, Pa__, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(?\<Psi>3, ?P3, ?P3) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}
\<lbrakk>?\<Psi>3 \<rhd> ?P3 \<sim> ?Q3; (?\<Psi>3, ?Q3, ?R3) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}; ?\<Psi>3 \<rhd> ?R3 \<sim> ?S3\<rbrakk> \<Longrightarrow> (?\<Psi>3, ?P3, ?S3) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}
[PROOF STEP]
have "\<Psi> \<rhd> P \<oplus> \<tau>.(P) \<leadsto><?Z> \<tau>.(P)"
[PROOF STATE]
proof (prove)
using this:
(?\<Psi>3, ?P3, ?P3) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}
\<lbrakk>?\<Psi>3 \<rhd> ?P3 \<sim> ?Q3; (?\<Psi>3, ?Q3, ?R3) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}; ?\<Psi>3 \<rhd> ?R3 \<sim> ?S3\<rbrakk> \<Longrightarrow> (?\<Psi>3, ?P3, ?S3) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<leadsto><{(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}> \<tau>.P
[PROOF STEP]
by(rule tauLaw2SimLeft)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<leadsto><{(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}> \<tau>.P

goal (2 subgoals):
 1. (\<Psi>'__, Pa__, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
?\<Psi>''5 \<rhd> ?Pb5 \<oplus>\<^sub>\<top> \<tau>.?Pb5 \<leadsto><{(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}> \<tau>.?Pb5

goal (2 subgoals):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
 2. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}
?\<Psi>''5 \<rhd> ?Pb5 \<oplus>\<^sub>\<top> \<tau>.?Pb5 \<leadsto><{(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}> \<tau>.?Pb5
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}
?\<Psi>''5 \<rhd> ?Pb5 \<oplus>\<^sub>\<top> \<tau>.?Pb5 \<leadsto><{(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}> \<tau>.?Pb5

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
case False
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
from \<open>(\<Psi>, P, Q) \<notin> ?X\<close> \<open>(\<Psi>, P, Q) \<in> ?X \<union> ?Y\<close>
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}
[PROOF STEP]
have "(\<Psi>, P, Q) \<in> ?Y"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True}
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<in> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
fix \<Psi> P
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
have "\<And>\<Psi> P Q. \<Psi> \<rhd> P \<sim> Q \<Longrightarrow> (\<Psi>, P, Q) \<in> ?Z"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>\<Psi> P Q. \<Psi> \<rhd> P \<sim> Q \<Longrightarrow> (\<Psi>, P, Q) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}
[PROOF STEP]
by(blast intro: weakBisimReflexive bisimReflexive)
[PROOF STATE]
proof (state)
this:
?\<Psi>3 \<rhd> ?P3 \<sim> ?Q3 \<Longrightarrow> (?\<Psi>3, ?P3, ?Q3) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}

goal (1 subgoal):
 1. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
hence "\<Psi> \<rhd> \<tau>.(P) \<leadsto><?Z> P \<oplus> \<tau>.(P)"
[PROOF STATE]
proof (prove)
using this:
?\<Psi>3 \<rhd> ?P3 \<sim> ?Q3 \<Longrightarrow> (?\<Psi>3, ?P3, ?Q3) \<in> {(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}

goal (1 subgoal):
 1. \<Psi> \<rhd> \<tau>.P \<leadsto><{(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}> P \<oplus>\<^sub>\<top> \<tau>.P
[PROOF STEP]
by(rule tauLaw2SimRight)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> \<tau>.P \<leadsto><{(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}> P \<oplus>\<^sub>\<top> \<tau>.P

goal (1 subgoal):
 1. (\<Psi>'__, Pa__, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi>'__ \<rhd> Pa__ \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
?\<Psi>''5 \<rhd> \<tau>.?Pb5 \<leadsto><{(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}> ?Pb5 \<oplus>\<^sub>\<top> \<tau>.?Pb5

goal (1 subgoal):
 1. (\<Psi>, P, Q) \<notin> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<Longrightarrow> \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, P, Q) \<in> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}
?\<Psi>''5 \<rhd> \<tau>.?Pb5 \<leadsto><{(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}> ?Pb5 \<oplus>\<^sub>\<top> \<tau>.?Pb5
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<in> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}
?\<Psi>''5 \<rhd> \<tau>.?Pb5 \<leadsto><{(\<Psi>, P, S) |\<Psi> P S. \<exists>Q R. \<Psi> \<rhd> P \<sim> Q \<and> (\<Psi>, Q, R) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> R \<sim> S}> ?Pb5 \<oplus>\<^sub>\<top> \<tau>.?Pb5

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<leadsto><{(\<Psi>, P, Q) |\<Psi> P Q. \<exists>P' Q'. \<Psi> \<rhd> P \<sim> P' \<and> (\<Psi>, P', Q') \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim \<and> \<Psi> \<rhd> Q' \<sim> Q}> Q

goal (2 subgoals):
 1. \<And>\<Psi> P Q \<Psi>'. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi> \<otimes> \<Psi>', P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
 2. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>\<Psi> P Q \<Psi>'. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi> \<otimes> \<Psi>', P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
 2. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
case(cExt \<Psi> P Q \<Psi>')
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (2 subgoals):
 1. \<And>\<Psi> P Q \<Psi>'. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi> \<otimes> \<Psi>', P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
 2. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>', P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>', P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim

goal (1 subgoal):
 1. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
case(cSym \<Psi> P Q)
[PROOF STATE]
proof (state)
this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. \<And>\<Psi> P Q. (\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<Longrightarrow> (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True}

goal (1 subgoal):
 1. (\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<Psi>, Q, P) \<in> {(\<Psi>, P \<oplus>\<^sub>\<top> \<tau>.P, \<tau>.P) |\<Psi> P. True} \<union> {(\<Psi>, \<tau>.P, P \<oplus>\<^sub>\<top> \<tau>.P) |\<Psi> P. True} \<union> weakBisim

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<oplus>\<^sub>\<top> \<tau>.P \<approx> \<tau>.P

goal:
No subgoals!
[PROOF STEP]
qed