[STATEMENT]
lemma Call_lemma':
 assumes Call_hyp:
 "\<forall>q\<in>dom \<Gamma>. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub>{s. s=Z \<and> \<Gamma>\<turnstile>\<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                       \<Gamma>\<turnstile>Call q\<down>Normal s \<and> ((s,q),(\<sigma>,p)) \<in> termi_call_steps \<Gamma>}
                 (Call q)
                {t. \<Gamma>\<turnstile>\<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},
                {t. \<Gamma>\<turnstile>\<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
 shows "\<And>Z. \<Gamma>,\<Theta> \<turnstile>\<^sub>t\<^bsub>/F\<^esub>
      {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
                (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c#cs,css,Normal s))}
              c
      {t. \<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},
      {t. \<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (induct c)
[PROOF STATE]
proof (state)
goal (11 subgoals):
 1. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Skip,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Skip # cs, css, Normal s))} Skip {t. \<Gamma>\<turnstile> \<langle>Skip,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Skip,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Basic x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Basic x # cs, css, Normal s))} Basic x {t. \<Gamma>\<turnstile> \<langle>Basic x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Basic x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Spec x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec x # cs, css, Normal s))} Spec x {t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 9. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 10. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
A total of 11 subgoals...
[PROOF STEP]
case Skip
[PROOF STATE]
proof (state)
this:

goal (11 subgoals):
 1. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Skip,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Skip # cs, css, Normal s))} Skip {t. \<Gamma>\<turnstile> \<langle>Skip,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Skip,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Basic x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Basic x # cs, css, Normal s))} Basic x {t. \<Gamma>\<turnstile> \<langle>Basic x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Basic x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Spec x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec x # cs, css, Normal s))} Spec x {t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 9. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 10. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
A total of 11 subgoals...
[PROOF STEP]
show "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile>\<langle>Skip,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                 \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and>
                (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Skip # cs,css,Normal s))}
               Skip
              {t. \<Gamma>\<turnstile>\<langle>Skip,Normal Z\<rangle> \<Rightarrow> Normal t},
              {t. \<Gamma>\<turnstile>\<langle>Skip,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Skip,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Skip # cs, css, Normal s))} Skip {t. \<Gamma>\<turnstile> \<langle>Skip,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Skip,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by (rule hoaret.Skip [THEN conseqPre]) (blast intro: exec.Skip)
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Skip,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Skip # cs, css, Normal s))} Skip {t. \<Gamma>\<turnstile> \<langle>Skip,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Skip,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (10 subgoals):
 1. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Basic x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Basic x # cs, css, Normal s))} Basic x {t. \<Gamma>\<turnstile> \<langle>Basic x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Basic x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Spec x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec x # cs, css, Normal s))} Spec x {t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 9. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 10. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (10 subgoals):
 1. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Basic x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Basic x # cs, css, Normal s))} Basic x {t. \<Gamma>\<turnstile> \<langle>Basic x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Basic x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Spec x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec x # cs, css, Normal s))} Spec x {t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 9. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 10. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
case (Basic f)
[PROOF STATE]
proof (state)
this:

goal (10 subgoals):
 1. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Basic x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Basic x # cs, css, Normal s))} Basic x {t. \<Gamma>\<turnstile> \<langle>Basic x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Basic x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Spec x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec x # cs, css, Normal s))} Spec x {t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 9. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 10. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>Basic f,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                   \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
                (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Basic f#cs,css,Normal s))}
               Basic f
              {t. \<Gamma>\<turnstile>\<langle>Basic f,Normal Z\<rangle> \<Rightarrow> Normal t},
              {t. \<Gamma>\<turnstile>\<langle>Basic f,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Basic f,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Basic f # cs, css, Normal s))} Basic f {t. \<Gamma>\<turnstile> \<langle>Basic f,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Basic f,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by (rule hoaret.Basic [THEN conseqPre]) (blast intro: exec.Basic)
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Basic f,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Basic f # cs, css, Normal s))} Basic f {t. \<Gamma>\<turnstile> \<langle>Basic f,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Basic f,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (9 subgoals):
 1. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Spec x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec x # cs, css, Normal s))} Spec x {t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 9. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (9 subgoals):
 1. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Spec x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec x # cs, css, Normal s))} Spec x {t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 9. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
case (Spec r)
[PROOF STATE]
proof (state)
this:

goal (9 subgoals):
 1. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Spec x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec x # cs, css, Normal s))} Spec x {t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Spec x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 9. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>Spec r,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                   \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
                (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Spec r#cs,css,Normal s))}
               Spec r
              {t. \<Gamma>\<turnstile>\<langle>Spec r,Normal Z\<rangle> \<Rightarrow> Normal t},
              {t. \<Gamma>\<turnstile>\<langle>Spec r,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Spec r,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec r # cs, css, Normal s))} Spec r {t. \<Gamma>\<turnstile> \<langle>Spec r,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Spec r,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
apply (rule hoaret.Spec [THEN conseqPre])
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Spec r,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec r # cs, css, Normal s))} \<subseteq> {s. (\<forall>t. (s, t) \<in> r \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>Spec r,Normal Z\<rangle> \<Rightarrow> Normal t}) \<and> (\<exists>t. (s, t) \<in> r)}
[PROOF STEP]
apply (clarsimp)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Spec r,Normal Z\<rangle> \<Rightarrow>\<notin>insert Stuck (Fault ` (- F)); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec r # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> (\<forall>t. (Z, t) \<in> r \<longrightarrow> \<Gamma>\<turnstile> \<langle>Spec r,Normal Z\<rangle> \<Rightarrow> Normal t) \<and> (\<exists>t. (Z, t) \<in> r)
[PROOF STEP]
apply (case_tac "\<exists>t. (Z,t) \<in> r")
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Spec r,Normal Z\<rangle> \<Rightarrow>\<notin>insert Stuck (Fault ` (- F)); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec r # cs, css, Normal Z); \<exists>t. (Z, t) \<in> r\<rbrakk> \<Longrightarrow> (\<forall>t. (Z, t) \<in> r \<longrightarrow> \<Gamma>\<turnstile> \<langle>Spec r,Normal Z\<rangle> \<Rightarrow> Normal t) \<and> (\<exists>t. (Z, t) \<in> r)
 2. \<And>cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Spec r,Normal Z\<rangle> \<Rightarrow>\<notin>insert Stuck (Fault ` (- F)); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec r # cs, css, Normal Z); \<nexists>t. (Z, t) \<in> r\<rbrakk> \<Longrightarrow> (\<forall>t. (Z, t) \<in> r \<longrightarrow> \<Gamma>\<turnstile> \<langle>Spec r,Normal Z\<rangle> \<Rightarrow> Normal t) \<and> (\<exists>t. (Z, t) \<in> r)
[PROOF STEP]
apply (auto elim: exec_elim_cases simp add: final_notin_def intro: exec.intros)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Spec r,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Spec r # cs, css, Normal s))} Spec r {t. \<Gamma>\<turnstile> \<langle>Spec r,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Spec r,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (8 subgoals):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (8 subgoals):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
case (Seq c1 c2)
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (8 subgoals):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have hyp_c1:
    "\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                     \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
                 (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c1#cs,css,Normal s))}
                c1
               {t. \<Gamma>\<turnstile>\<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},
               {t. \<Gamma>\<turnstile>\<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
using Seq.hyps
[PROOF STATE]
proof (prove)
using this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (8 subgoals):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have hyp_c2:
    "\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                    \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
                 (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c2#cs,css,Normal s))}
                c2
               {t. \<Gamma>\<turnstile>\<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},
               {t. \<Gamma>\<turnstile>\<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
using Seq.hyps
[PROOF STATE]
proof (prove)
using this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (8 subgoals):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have c1: "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                    \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
              (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2#cs,css,Normal s))}
               c1
               {t. \<Gamma>\<turnstile>\<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t \<and>
                   \<Gamma>\<turnstile>\<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                   \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
                  (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c2#cs,css,Normal t))},
               {t. \<Gamma>\<turnstile>\<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t \<and> \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t))},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (rule ConseqMGT [OF hyp_c1],clarify,safe)
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 5. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (5 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 5. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>c1,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
by (blast dest: Seq_NoFaultStuckD1)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix cs css
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs,css,Normal Z)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z)

goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs,css, Normal Z)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z)

goal (1 subgoal):
 1. \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
[PROOF STEP]
by (blast intro: rtranclp_into_tranclp1 [THEN tranclp_into_rtranclp]
                 step.Seq)
[PROOF STATE]
proof (state)
this:
\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
            "\<Gamma>\<turnstile>\<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t

goal (3 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
by (blast dest: Seq_NoFaultStuckD2)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix cs css t
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2#cs,css,Normal Z)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z)

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z)

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
have "\<Gamma>\<turnstile>(Seq c1 c2 # cs,css,Normal Z) \<rightarrow> (c1#c2#cs,css,Normal Z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> (Seq c1 c2 # cs, css, Normal Z) \<rightarrow> (c1 # c2 # cs, css, Normal Z)
[PROOF STEP]
by (rule step.Seq)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Seq c1 c2 # cs, css, Normal Z) \<rightarrow> (c1 # c2 # cs, css, Normal Z)

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Seq c1 c2 # cs, css, Normal Z) \<rightarrow> (c1 # c2 # cs, css, Normal Z)

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
hence "\<Gamma>\<turnstile> (c1#c2#cs,css,Normal Z) \<rightarrow>\<^sup>* (c2#cs,css,Normal t)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> (c1 # c2 # cs, css, Normal Z) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
[PROOF STEP]
by (rule exec_impl_steps)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (c1 # c2 # cs, css, Normal Z) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
[PROOF STEP]
show "\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs,css, Normal t)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)

goal (1 subgoal):
 1. \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t)

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
by (blast intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t \<and> \<Gamma>\<turnstile> \<langle>c2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal t))},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (8 subgoals):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 8. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                  \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
              (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2#cs,css,Normal s))}
              Seq c1 c2
              {t. \<Gamma>\<turnstile>\<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},
              {t. \<Gamma>\<turnstile>\<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by (rule hoaret.Seq [OF c1 ConseqMGT [OF hyp_c2]])
     (blast intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Seq c1 c2 # cs, css, Normal s))} Seq c1 c2 {t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Seq c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (7 subgoals):
 1. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (7 subgoals):
 1. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
case (Cond b c1 c2)
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (7 subgoals):
 1. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have hyp_c1:
       "\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                        \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
                    (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[], Normal \<sigma>) \<rightarrow>\<^sup>* (c1#cs,css,Normal s))}
                   c1
                  {t. \<Gamma>\<turnstile>\<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},
                  {t. \<Gamma>\<turnstile>\<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
using Cond.hyps
[PROOF STATE]
proof (prove)
using this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (7 subgoals):
 1. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have
  "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({s. s=Z \<and> \<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
           \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
           (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2#cs,css,Normal s))}
           \<inter> b)
           c1
          {t. \<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},
          {t. \<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal s))} \<inter> b) c1 {t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (rule ConseqMGT [OF hyp_c1],safe)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 4. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "Z \<in> b" "\<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (state)
this:
Z \<in> b
\<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 4. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>c1,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (prove)
using this:
Z \<in> b
\<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
by (auto simp add: final_notin_def intro: exec.CondTrue)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix cs css
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "Z \<in> b"
      "\<Gamma>\<turnstile>([the (\<Gamma> p)],[], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs,css, Normal Z)"
[PROOF STATE]
proof (state)
this:
Z \<in> b
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs,css, Normal Z)"
[PROOF STATE]
proof (prove)
using this:
Z \<in> b
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)

goal (1 subgoal):
 1. \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)
[PROOF STEP]
by (blast intro: rtranclp_into_tranclp1 [THEN tranclp_into_rtranclp]
          step.CondTrue)
[PROOF STATE]
proof (state)
this:
\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal Z)

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "Z \<in> b" "\<Gamma>\<turnstile>\<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (state)
this:
Z \<in> b
\<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (prove)
using this:
Z \<in> b
\<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
by (blast intro: exec.CondTrue)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "Z \<in> b" "\<Gamma>\<turnstile>\<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (state)
this:
Z \<in> b
\<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (prove)
using this:
Z \<in> b
\<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
by (blast intro: exec.CondTrue)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal s))} \<inter> b) c1 {t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (7 subgoals):
 1. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal s))} \<inter> b) c1 {t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (7 subgoals):
 1. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have hyp_c2:
       "\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                     \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
                    (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c2#cs,css,Normal s))}
                   c2
                  {t. \<Gamma>\<turnstile>\<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},
                  {t. \<Gamma>\<turnstile>\<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
using Cond.hyps
[PROOF STATE]
proof (prove)
using this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (7 subgoals):
 1. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have
  "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({s. s=Z \<and> \<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
              \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
           (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>*(Cond b c1 c2#cs,css, Normal s))}
           \<inter> -b)
           c2
          {t. \<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},
          {t. \<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal s))} \<inter> - b) c2 {t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (rule ConseqMGT [OF hyp_c2],safe)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 4. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "Z \<notin> b" "\<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (state)
this:
Z \<notin> b
\<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 4. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>c2,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (prove)
using this:
Z \<notin> b
\<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
by (auto simp add: final_notin_def intro: exec.CondFalse)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix cs css
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "Z \<notin> b"
      "\<Gamma>\<turnstile>([the (\<Gamma> p)],[], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs,css, Normal Z)"
[PROOF STATE]
proof (state)
this:
Z \<notin> b
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs,css,Normal Z)"
[PROOF STATE]
proof (prove)
using this:
Z \<notin> b
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z)

goal (1 subgoal):
 1. \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal Z)
[PROOF STEP]
by (blast intro: rtranclp_into_tranclp1 [THEN tranclp_into_rtranclp]
          step.CondFalse)
[PROOF STATE]
proof (state)
this:
\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal Z)

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "Z \<notin> b" "\<Gamma>\<turnstile>\<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (state)
this:
Z \<notin> b
\<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (prove)
using this:
Z \<notin> b
\<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
by (blast intro: exec.CondFalse)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "Z \<notin> b" "\<Gamma>\<turnstile>\<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (state)
this:
Z \<notin> b
\<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<notin> b; \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (prove)
using this:
Z \<notin> b
\<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
by (blast intro: exec.CondFalse)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal s))} \<inter> - b) c2 {t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (7 subgoals):
 1. \<And>x1 c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond x1 c1 c2 # cs, css, Normal s))} Cond x1 c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond x1 c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 7. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal s))} \<inter> b) c1 {t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal s))} \<inter> - b) c2 {t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show
   "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
              \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
           (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2#cs,css,Normal s))}
           (Cond b c1 c2)
          {t. \<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},
          {t. \<Gamma>\<turnstile>\<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal s))} \<inter> b) c1 {t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal s))} \<inter> - b) c2 {t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal s))} Cond b c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by (rule hoaret.Cond)
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Cond b c1 c2 # cs, css, Normal s))} Cond b c1 c2 {t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Cond b c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (6 subgoals):
 1. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
case (While b c)
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (6 subgoals):
 1. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
let ?unroll = "({(s,t). s\<in>b \<and> \<Gamma>\<turnstile>\<langle>c,Normal s\<rangle> \<Rightarrow> Normal t})\<^sup>*"
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
let ?P' = "\<lambda>Z. {t. (Z,t)\<in>?unroll \<and>
                    (\<forall>e. (Z,e)\<in>?unroll \<longrightarrow> e\<in>b
                         \<longrightarrow> \<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                             (\<forall>u. \<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>Abrupt u \<longrightarrow>
                                  \<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and>
                    \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
                  (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>*
                               (While b c#cs,css,Normal t))}"
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
let ?A = "\<lambda>Z. {t. \<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
let ?r = "{(t,s). \<Gamma>\<turnstile>(While b c)\<down>Normal s \<and> s\<in>b \<and>
                    \<Gamma>\<turnstile>\<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}"
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. \<And>x1 c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While x1 c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While x1 c # cs, css, Normal s))} While x1 c {t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While x1 c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 6. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub>
       {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                 \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
          (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>)\<rightarrow>\<^sup>*(While b c#cs,css,Normal s))}
         (While b c)
       {t. \<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t},
       {t. \<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))} While b c {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (rule ConseqMGT [where ?P'="\<lambda> Z. ?P' Z"
                         and ?Q'="\<lambda> Z. ?P' Z \<inter> - b"])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} While b c ({t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b),(?A' Z)
 2. \<And>s. s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))} \<Longrightarrow> s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<and> (\<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}) \<and> (\<forall>t. t \<in> ?A' s \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
have wf_r: "wf ?r"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. wf {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}
[PROOF STEP]
by (rule wf_terminates_while)
[PROOF STATE]
proof (state)
this:
wf {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}

goal (2 subgoals):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} While b c ({t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b),(?A' Z)
 2. \<And>s. s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))} \<Longrightarrow> s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<and> (\<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}) \<and> (\<forall>t. t \<in> ?A' s \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
show "\<forall> Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> (?P' Z) (While b c) (?P' Z \<inter> - b),(?A Z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} While b c ({t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b),{t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (rule allI, rule hoaret.While [OF wf_r])
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>Z. \<forall>\<sigma>'. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({\<sigma>'} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b) c ({t. (t, \<sigma>') \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}),{t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
fix Z
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>Z. \<forall>\<sigma>'. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({\<sigma>'} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b) c ({t. (t, \<sigma>') \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}),{t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
from While
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have hyp_c: "\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub>
            {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
               (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs,css,Normal s))}
              c
            {t. \<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},
            {t. \<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<And>Z. \<forall>\<sigma>'. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({\<sigma>'} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b) c ({t. (t, \<sigma>') \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}),{t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show "\<forall>\<sigma>. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({\<sigma>} \<inter> ?P' Z  \<inter> b) c
                       ({t. (t, \<sigma>) \<in> ?r} \<inter> ?P' Z),(?A Z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>\<sigma>'. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({\<sigma>'} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b) c ({t. (t, \<sigma>') \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}),{t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (rule allI, rule ConseqMGT [OF hyp_c])
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>\<sigma>' s. s \<in> {\<sigma>'} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b \<Longrightarrow> s \<in> {sa. sa = s \<and> \<Gamma>\<turnstile> \<langle>c,Normal sa\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal sa))} \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<sigma>') \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
fix \<tau> s
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>\<sigma>' s. s \<in> {\<sigma>'} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b \<Longrightarrow> s \<in> {sa. sa = s \<and> \<Gamma>\<turnstile> \<langle>c,Normal sa\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal sa))} \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<sigma>') \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
assume  asm: "s\<in> {\<tau>} \<inter>
                   {t. (Z, t) \<in> ?unroll \<and>
                      (\<forall>e. (Z,e)\<in>?unroll \<longrightarrow> e\<in>b
                           \<longrightarrow> \<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                               (\<forall>u. \<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>Abrupt u \<longrightarrow>
                                    \<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and>
                     \<Gamma>\<turnstile>the (\<Gamma> p)\<down> Normal \<sigma> \<and>
                     (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>*
                                  (While b c#cs,css,Normal t))}
                   \<inter> b"
[PROOF STATE]
proof (state)
this:
s \<in> {\<tau>} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b

goal (1 subgoal):
 1. \<And>\<sigma>' s. s \<in> {\<sigma>'} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b \<Longrightarrow> s \<in> {sa. sa = s \<and> \<Gamma>\<turnstile> \<langle>c,Normal sa\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal sa))} \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<sigma>') \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
s \<in> {\<tau>} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b
[PROOF STEP]
obtain cs css where
          s_eq_\<tau>: "s=\<tau>" and
          Z_s_unroll: "(Z,s) \<in> ?unroll" and
          noabort:"\<forall>e. (Z,e)\<in>?unroll \<longrightarrow> e\<in>b
                        \<longrightarrow> \<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                            (\<forall>u. \<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>Abrupt u \<longrightarrow>
                                  \<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)" and
          termi:  "\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>" and
          reach: "\<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>*
                    (While b c#cs,css,Normal s)"and
          s_in_b: "s\<in>b"
[PROOF STATE]
proof (prove)
using this:
s \<in> {\<tau>} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b

goal (1 subgoal):
 1. (\<And>cs css. \<lbrakk>s = \<tau>; (Z, s) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s); s \<in> b\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
s = \<tau>
(Z, s) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s)
s \<in> b

goal (1 subgoal):
 1. \<And>\<sigma>' s. s \<in> {\<sigma>'} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b \<Longrightarrow> s \<in> {sa. sa = s \<and> \<Gamma>\<turnstile> \<langle>c,Normal sa\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal sa))} \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<sigma>') \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
have reach_c:
          "\<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c#While b c#cs,css,Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)
[PROOF STEP]
note reach
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)
[PROOF STEP]
from s_in_b
[PROOF STATE]
proof (chain)
picking this:
s \<in> b
[PROOF STEP]
have "\<Gamma>\<turnstile>(While b c#cs,css,Normal s)\<rightarrow>
                  (c#While b c#cs,css,Normal s)"
[PROOF STATE]
proof (prove)
using this:
s \<in> b

goal (1 subgoal):
 1. \<Gamma>\<turnstile> (While b c # cs, css, Normal s) \<rightarrow> (c # While b c # cs, css, Normal s)
[PROOF STEP]
by (rule step.WhileTrue)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (While b c # cs, css, Normal s) \<rightarrow> (c # While b c # cs, css, Normal s)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)
[PROOF STEP]
.
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)

goal (1 subgoal):
 1. \<And>\<sigma>' s. s \<in> {\<sigma>'} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b \<Longrightarrow> s \<in> {sa. sa = s \<and> \<Gamma>\<turnstile> \<langle>c,Normal sa\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal sa))} \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<sigma>') \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
from reach termi
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s)
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>
[PROOF STEP]
have
          termi_while: "\<Gamma>\<turnstile>While b c \<down> Normal s"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s)
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>

goal (1 subgoal):
 1. \<Gamma>\<turnstile>While b c \<down> Normal s
[PROOF STEP]
by (rule steps_preserves_termination)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile>While b c \<down> Normal s

goal (1 subgoal):
 1. \<And>\<sigma>' s. s \<in> {\<sigma>'} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b \<Longrightarrow> s \<in> {sa. sa = s \<and> \<Gamma>\<turnstile> \<langle>c,Normal sa\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal sa))} \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<sigma>') \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
show "s \<in> {t. t = s \<and> \<Gamma>\<turnstile>\<langle>c,Normal t\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                      \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and>
                   (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c#cs,css,Normal t))} \<and>
        (\<forall>t. t \<in> {t. \<Gamma>\<turnstile>\<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow>
             t \<in> {t. (t,\<tau>) \<in> ?r} \<inter>
                 {t. (Z, t) \<in> ?unroll \<and>
                     (\<forall>e. (Z,e)\<in>?unroll \<longrightarrow>  e\<in>b
                           \<longrightarrow> \<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                              (\<forall>u. \<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>Abrupt u \<longrightarrow>
                                  \<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and>
                      \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and>
                    (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>*
                                 (While b c # cs,css,Normal t))}) \<and>
         (\<forall>t. t \<in> {t. \<Gamma>\<turnstile>\<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow>
             t \<in> {t. \<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})"
          (is "?C1 \<and> ?C2 \<and> ?C3")
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s \<in> {t. t = s \<and> \<Gamma>\<turnstile> \<langle>c,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal t))} \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
proof (intro conjI)
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. s \<in> {t. t = s \<and> \<Gamma>\<turnstile> \<langle>c,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 3. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
from Z_s_unroll noabort s_in_b termi reach_c
[PROOF STATE]
proof (chain)
picking this:
(Z, s) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)
s \<in> b
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)
[PROOF STEP]
show ?C1
[PROOF STATE]
proof (prove)
using this:
(Z, s) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)
s \<in> b
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)

goal (1 subgoal):
 1. s \<in> {t. t = s \<and> \<Gamma>\<turnstile> \<langle>c,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal t))}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
s \<in> {t. t = s \<and> \<Gamma>\<turnstile> \<langle>c,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal t))}

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
assume s_t: "\<Gamma>\<turnstile>\<langle>c,Normal s\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
with s_eq_\<tau> termi_while s_in_b
[PROOF STATE]
proof (chain)
picking this:
s = \<tau>
\<Gamma>\<turnstile>While b c \<down> Normal s
s \<in> b
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
have "(t,\<tau>) \<in> ?r"
[PROOF STATE]
proof (prove)
using this:
s = \<tau>
\<Gamma>\<turnstile>While b c \<down> Normal s
s \<in> b
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
(t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
from Z_s_unroll s_t s_in_b
[PROOF STATE]
proof (chain)
picking this:
(Z, s) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t
s \<in> b
[PROOF STEP]
have "(Z, t) \<in> ?unroll"
[PROOF STATE]
proof (prove)
using this:
(Z, s) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t
s \<in> b

goal (1 subgoal):
 1. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
[PROOF STEP]
by (blast intro: rtrancl_into_rtrancl)
[PROOF STATE]
proof (state)
this:
(Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have "\<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (While b c#cs,css,Normal t)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)
[PROOF STEP]
note reach_c
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # While b c # cs, css, Normal s)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)
[PROOF STEP]
from s_t
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
have "\<Gamma>\<turnstile>(c#While b c#cs,css,Normal s)\<rightarrow>\<^sup>*
                      (While b c#cs,css, Normal t)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> (c # While b c # cs, css, Normal s) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)
[PROOF STEP]
by (rule exec_impl_steps)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (c # While b c # cs, css, Normal s) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)
[PROOF STEP]
.
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
note noabort termi
[PROOF STATE]
proof (state)
this:
\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}
(Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)
\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>
[PROOF STEP]
have "(t,\<tau>) \<in> ?r \<and> (Z, t) \<in> ?unroll \<and>
                  (\<forall>e. (Z,e)\<in>?unroll \<longrightarrow> e\<in>b
                        \<longrightarrow> \<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                            (\<forall>u. \<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>Abrupt u \<longrightarrow>
                                  \<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and>
                  \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and>
                    (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>*
                                 (While b c # cs,css, Normal t))"
[PROOF STATE]
proof (prove)
using this:
(t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}
(Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t)
\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>

goal (1 subgoal):
 1. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<and> (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
(t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<and> (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal ?t2 \<Longrightarrow> (?t2, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<and> (Z, ?t2) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal ?t2))

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal ?t2 \<Longrightarrow> (?t2, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<and> (Z, ?t2) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal ?t2))
[PROOF STEP]
show ?C2
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal ?t2 \<Longrightarrow> (?t2, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<and> (Z, ?t2) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal ?t2))

goal (1 subgoal):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}

goal (1 subgoal):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
assume s_t:  "\<Gamma>\<turnstile>\<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
from Z_s_unroll noabort s_t s_in_b
[PROOF STATE]
proof (chain)
picking this:
(Z, s) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t
s \<in> b
[PROOF STEP]
have "\<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (prove)
using this:
(Z, s) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t
s \<in> b

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt ?t2 \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt ?t2

goal (1 subgoal):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
thus ?C3
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt ?t2 \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt ?t2

goal (1 subgoal):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
s \<in> {t. t = s \<and> \<Gamma>\<turnstile> \<langle>c,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal t))} \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t} \<longrightarrow> t \<in> {t. (t, \<tau>) \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<forall>\<sigma>'. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ({\<sigma>'} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> b) c ({t. (t, \<sigma>') \<in> {(t, s). \<Gamma>\<turnstile>While b c \<down> Normal s \<and> s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}} \<inter> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}),{t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} While b c ({t. (Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b),{t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<And>s. s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))} \<Longrightarrow> s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<and> (\<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s. s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))} \<Longrightarrow> s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<and> (\<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
fix s
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s. s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))} \<Longrightarrow> s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<and> (\<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
assume P: "s \<in> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                       \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
                   (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>*
                                (While b c#cs,css,Normal s))}"
[PROOF STATE]
proof (state)
this:
s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))}

goal (1 subgoal):
 1. \<And>s. s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))} \<Longrightarrow> s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<and> (\<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
hence WhileNoFault: "\<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (prove)
using this:
s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))}

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. \<And>s. s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))} \<Longrightarrow> s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<and> (\<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
show "s \<in> ?P' s \<and>
     (\<forall>t. t\<in>(?P' s \<inter> - b)\<longrightarrow>
          t\<in>{t. \<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t})\<and>
     (\<forall>t. t\<in>?A s \<longrightarrow> t\<in>?A Z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<and> (\<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})
[PROOF STEP]
proof (intro conjI)
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 3. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 3. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
fix e
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 3. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
assume "(Z,e) \<in> ?unroll" "e \<in> b"
[PROOF STATE]
proof (state)
this:
(Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
e \<in> b

goal (3 subgoals):
 1. s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 3. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
from this WhileNoFault
[PROOF STATE]
proof (chain)
picking this:
(Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
e \<in> b
\<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
have "\<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
               (\<forall>u. \<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>Abrupt u \<longrightarrow>
                    \<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)" (is "?Prop Z e")
[PROOF STATE]
proof (prove)
using this:
(Z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*
e \<in> b
\<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
proof (induct rule: converse_rtrancl_induct [consumes 1])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u)
 2. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
assume e_in_b: "e \<in> b"
[PROOF STATE]
proof (state)
this:
e \<in> b

goal (2 subgoals):
 1. \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u)
 2. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
assume WhileNoFault: "\<Gamma>\<turnstile>\<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (2 subgoals):
 1. \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u)
 2. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
with e_in_b WhileNoFault
[PROOF STATE]
proof (chain)
picking this:
e \<in> b
\<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
have cNoFault: "\<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (prove)
using this:
e \<in> b
\<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
by (auto simp add: final_notin_def intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (2 subgoals):
 1. \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u)
 2. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (2 subgoals):
 1. \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u)
 2. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (2 subgoals):
 1. \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u)
 2. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
fix u
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u)
 2. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u

goal (2 subgoals):
 1. \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u)
 2. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
with e_in_b
[PROOF STATE]
proof (chain)
picking this:
e \<in> b
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u
[PROOF STEP]
have "\<Gamma>\<turnstile>\<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u"
[PROOF STATE]
proof (prove)
using this:
e \<in> b
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u
[PROOF STEP]
by (blast intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u

goal (2 subgoals):
 1. \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u)
 2. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt ?u2 \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt ?u2

goal (2 subgoals):
 1. \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u)
 2. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt ?u2 \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt ?u2
[PROOF STEP]
show "?Prop e e"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt ?u2 \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt ?u2

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal e\<rangle> \<Rightarrow> Abrupt u)

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
fix Z r
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
assume e_in_b: "e\<in>b"
[PROOF STATE]
proof (state)
this:
e \<in> b

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
assume WhileNoFault: "\<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
assume hyp: "\<lbrakk>e\<in>b;\<Gamma>\<turnstile>\<langle>While b c,Normal r\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))\<rbrakk>
                       \<Longrightarrow> ?Prop r e"
[PROOF STATE]
proof (state)
this:
\<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u)

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
assume Z_r:
            "(Z, r) \<in> {(Z, r). Z \<in> b \<and> \<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r}"
[PROOF STATE]
proof (state)
this:
(Z, r) \<in> {(Z, r). Z \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r}

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
with WhileNoFault
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
(Z, r) \<in> {(Z, r). Z \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r}
[PROOF STEP]
have "\<Gamma>\<turnstile>\<langle>While b c,Normal r\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
(Z, r) \<in> {(Z, r). Z \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r}

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
by (auto simp add: final_notin_def intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
from hyp [OF e_in_b this]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
obtain
            cNoFault: "\<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))" and
            Abrupt_r: "\<forall>u. \<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow>
                            \<Gamma>\<turnstile>\<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u)

goal (1 subgoal):
 1. (\<lbrakk>\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
fix u
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
with Abrupt_r
[PROOF STATE]
proof (chain)
picking this:
\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u
[PROOF STEP]
have "\<Gamma>\<turnstile>\<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u"
[PROOF STATE]
proof (prove)
using this:
\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
from  Z_r
[PROOF STATE]
proof (chain)
picking this:
(Z, r) \<in> {(Z, r). Z \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r}
[PROOF STEP]
obtain
              "Z \<in> b"  "\<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r"
[PROOF STATE]
proof (prove)
using this:
(Z, r) \<in> {(Z, r). Z \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r}

goal (1 subgoal):
 1. (\<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
Z \<in> b
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u
Z \<in> b
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r
[PROOF STEP]
have "\<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Abrupt u
Z \<in> b
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u
[PROOF STEP]
by (blast intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt ?u2 \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt ?u2

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<lbrakk>e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Abrupt u); e \<in> b; \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
with cNoFault
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt ?u2 \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt ?u2
[PROOF STEP]
show "?Prop Z e"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt ?u2 \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt ?u2

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)

goal (3 subgoals):
 1. s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 3. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lbrakk>(Z, ?e2) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; ?e2 \<in> b\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal ?e2\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal ?e2\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)

goal (3 subgoals):
 1. s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
 2. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 3. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
with P
[PROOF STATE]
proof (chain)
picking this:
s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))}
\<lbrakk>(Z, ?e2) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; ?e2 \<in> b\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal ?e2\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal ?e2\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)
[PROOF STEP]
show "s \<in> ?P' s"
[PROOF STATE]
proof (prove)
using this:
s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))}
\<lbrakk>(Z, ?e2) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; ?e2 \<in> b\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal ?e2\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal ?e2\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt u)

goal (1 subgoal):
 1. s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))}

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
{
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
assume "termination": "t \<notin> b"
[PROOF STATE]
proof (state)
this:
t \<notin> b

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
assume "(Z, t) \<in> ?unroll"
[PROOF STATE]
proof (state)
this:
(Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
hence "\<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (prove)
using this:
(Z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
proof (induct rule: converse_rtrancl_induct [consumes 1])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal t\<rangle> \<Rightarrow> Normal t
 2. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
from "termination"
[PROOF STATE]
proof (chain)
picking this:
t \<notin> b
[PROOF STEP]
show "\<Gamma>\<turnstile>\<langle>While b c,Normal t\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (prove)
using this:
t \<notin> b

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal t\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
by (blast intro: exec.WhileFalse)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal t\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
fix Z r
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
assume first_body:
                 "(Z, r) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile>\<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}"
[PROOF STATE]
proof (state)
this:
(Z, r) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
assume "(r, t) \<in> ?unroll"
[PROOF STATE]
proof (state)
this:
(r, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
assume rest_loop: "\<Gamma>\<turnstile>\<langle>While b c, Normal r\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<And>y z. \<lbrakk>(y, z) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}; (z, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*; \<Gamma>\<turnstile> \<langle>While b c,Normal z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal y\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
show "\<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
from first_body
[PROOF STATE]
proof (chain)
picking this:
(Z, r) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}
[PROOF STEP]
obtain
              "Z \<in> b" "\<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r"
[PROOF STATE]
proof (prove)
using this:
(Z, r) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}

goal (1 subgoal):
 1. (\<lbrakk>Z \<in> b; \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by fast
[PROOF STATE]
proof (state)
this:
Z \<in> b
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
Z \<in> b
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
from rest_loop
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
have
              "\<Gamma>\<turnstile>\<langle>While b c,Normal r\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
by fast
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
Z \<in> b
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r
\<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
show "\<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (prove)
using this:
Z \<in> b
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal r
\<Gamma>\<turnstile> \<langle>While b c,Normal r\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
by (rule exec.WhileTrue)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lbrakk>?t2 \<notin> b; (Z, ?t2) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal ?t2

goal (2 subgoals):
 1. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
 2. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
with P
[PROOF STATE]
proof (chain)
picking this:
s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))}
\<lbrakk>?t2 \<notin> b; (Z, ?t2) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal ?t2
[PROOF STEP]
show "\<forall>t. t\<in>(?P' s \<inter> - b)
            \<longrightarrow>t\<in>{t. \<Gamma>\<turnstile>\<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}"
[PROOF STATE]
proof (prove)
using this:
s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))}
\<lbrakk>?t2 \<notin> b; (Z, ?t2) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>*\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal ?t2

goal (1 subgoal):
 1. \<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}

goal (1 subgoal):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
from P
[PROOF STATE]
proof (chain)
picking this:
s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))}
[PROOF STEP]
show "\<forall>t. t\<in>?A s \<longrightarrow> t\<in>?A Z"
[PROOF STATE]
proof (prove)
using this:
s \<in> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))}

goal (1 subgoal):
 1. \<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
s \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<and> (\<forall>t. t \<in> {t. (s, t) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<and> (\<forall>e. (s, e) \<in> {(s, t). s \<in> b \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> Normal t}\<^sup>* \<longrightarrow> e \<in> b \<longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> (\<forall>u. \<Gamma>\<turnstile> \<langle>c,Normal e\<rangle> \<Rightarrow> Abrupt u \<longrightarrow> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt u)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal t))} \<inter> - b \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t}) \<and> (\<forall>t. t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow> Abrupt t} \<longrightarrow> t \<in> {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t})

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>While b c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (While b c # cs, css, Normal s))} While b c {t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>While b c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (5 subgoals):
 1. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
case (Call q)
[PROOF STATE]
proof (state)
this:

goal (5 subgoals):
 1. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
let ?P = "{s. s=Z \<and> \<Gamma>\<turnstile>\<langle>Call q ,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
               \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
              (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>*
                  (Call q # cs,css,Normal s))}"
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
from noStuck_Call
[PROOF STATE]
proof (chain)
picking this:
?\<Gamma>\<turnstile> \<langle>Call ?p,Normal ?s\<rangle> \<Rightarrow>\<notin>{Stuck} \<Longrightarrow> ?p \<in> dom ?\<Gamma>
[PROOF STEP]
have "\<forall>s \<in> ?P. q \<in> dom \<Gamma>"
[PROOF STATE]
proof (prove)
using this:
?\<Gamma>\<turnstile> \<langle>Call ?p,Normal ?s\<rangle> \<Rightarrow>\<notin>{Stuck} \<Longrightarrow> ?p \<in> dom ?\<Gamma>

goal (1 subgoal):
 1. \<forall>s\<in>{s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal s))}. q \<in> dom \<Gamma>
[PROOF STEP]
by (fastforce simp add: final_notin_def)
[PROOF STATE]
proof (state)
this:
\<forall>s\<in>{s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal s))}. q \<in> dom \<Gamma>

goal (5 subgoals):
 1. \<And>x Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call x # cs, css, Normal s))} Call x {t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 5. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<forall>s\<in>{s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal s))}. q \<in> dom \<Gamma>
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<forall>s\<in>{s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal s))}. q \<in> dom \<Gamma>

goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal s))} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (rule conseq_extract_state_indep_prop)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. q \<in> dom \<Gamma> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal s))} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
assume q_defined: "q \<in> dom \<Gamma>"
[PROOF STATE]
proof (state)
this:
q \<in> dom \<Gamma>

goal (1 subgoal):
 1. q \<in> dom \<Gamma> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal s))} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
from Call_hyp
[PROOF STATE]
proof (chain)
picking this:
\<forall>q\<in>dom \<Gamma>. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>Call q \<down> Normal s \<and> ((s, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have
      "\<forall>q\<in>dom \<Gamma>. \<forall>Z.
        \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub>{s. s=Z \<and> \<Gamma>\<turnstile>\<langle>the (\<Gamma> q),Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                        \<Gamma>\<turnstile>(the (\<Gamma> q))\<down>Normal s \<and> ((s,q),(\<sigma>,p)) \<in> termi_call_steps \<Gamma>}
                 (Call q)
                {t. \<Gamma>\<turnstile>\<langle>the (\<Gamma> q),Normal Z\<rangle> \<Rightarrow> Normal t},
                {t. \<Gamma>\<turnstile>\<langle>the (\<Gamma> q),Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
using this:
\<forall>q\<in>dom \<Gamma>. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>Call q \<down> Normal s \<and> ((s, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<forall>q\<in>dom \<Gamma>. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>the (\<Gamma> q),Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> q) \<down> Normal s \<and> ((s, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>} Call q {t. \<Gamma>\<turnstile> \<langle>the (\<Gamma> q),Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>the (\<Gamma> q),Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by (simp add: exec_Call_body' noFaultStuck_Call_body' [simplified]
         terminates_Normal_Call_body)
[PROOF STATE]
proof (state)
this:
\<forall>q\<in>dom \<Gamma>. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>the (\<Gamma> q),Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> q) \<down> Normal s \<and> ((s, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>} Call q {t. \<Gamma>\<turnstile> \<langle>the (\<Gamma> q),Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>the (\<Gamma> q),Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. q \<in> dom \<Gamma> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal s))} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
from Call_hyp q_defined
[PROOF STATE]
proof (chain)
picking this:
\<forall>q\<in>dom \<Gamma>. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>Call q \<down> Normal s \<and> ((s, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}
q \<in> dom \<Gamma>
[PROOF STEP]
have Call_hyp':
    "\<forall>Z. \<Gamma>,\<Theta> \<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                     \<Gamma>\<turnstile>Call q\<down>Normal s \<and> ((s,q),(\<sigma>,p)) \<in> termi_call_steps \<Gamma>}
                  (Call q)
                 {t. \<Gamma>\<turnstile>\<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},
                 {t. \<Gamma>\<turnstile>\<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
using this:
\<forall>q\<in>dom \<Gamma>. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>Call q \<down> Normal s \<and> ((s, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}
q \<in> dom \<Gamma>

goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>Call q \<down> Normal s \<and> ((s, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>Call q \<down> Normal s \<and> ((s, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. q \<in> dom \<Gamma> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal s))} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show
     "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> ?P
           (Call q)
          {t. \<Gamma>\<turnstile>\<langle>Call q ,Normal Z\<rangle> \<Rightarrow> Normal t},
          {t. \<Gamma>\<turnstile>\<langle>Call q ,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal s))} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (rule ConseqMGT [OF Call_hyp'],safe)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile>Call q \<down> Normal Z
 2. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
fix cs css
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile>Call q \<down> Normal Z
 2. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
assume
        "\<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>)\<rightarrow>\<^sup>* (Call q # cs,css,Normal Z)"
        "\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>

goal (2 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile>Call q \<down> Normal Z
 2. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
hence "\<Gamma>\<turnstile>Call q \<down> Normal Z"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>

goal (1 subgoal):
 1. \<Gamma>\<turnstile>Call q \<down> Normal Z
[PROOF STEP]
by (rule steps_preserves_termination)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile>Call q \<down> Normal Z

goal (2 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile>Call q \<down> Normal Z
 2. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
with q_defined
[PROOF STATE]
proof (chain)
picking this:
q \<in> dom \<Gamma>
\<Gamma>\<turnstile>Call q \<down> Normal Z
[PROOF STEP]
show "\<Gamma>\<turnstile>Call q \<down> Normal Z"
[PROOF STATE]
proof (prove)
using this:
q \<in> dom \<Gamma>
\<Gamma>\<turnstile>Call q \<down> Normal Z

goal (1 subgoal):
 1. \<Gamma>\<turnstile>Call q \<down> Normal Z
[PROOF STEP]
by (auto elim: terminates_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile>Call q \<down> Normal Z

goal (1 subgoal):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
fix cs css
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
assume reach:
        "\<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Call q#cs,css,Normal Z)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)

goal (1 subgoal):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)

goal (1 subgoal):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
have "\<Gamma>\<turnstile>(Call q # cs,css, Normal Z) \<rightarrow>
                        ([the (\<Gamma> q)],(cs,Throw#cs)#css, Normal Z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> (Call q # cs, css, Normal Z) \<rightarrow> ([the (\<Gamma> q)], (cs, Throw # cs) # css, Normal Z)
[PROOF STEP]
by (rule step.Call) (insert q_defined,auto)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Call q # cs, css, Normal Z) \<rightarrow> ([the (\<Gamma> q)], (cs, Throw # cs) # css, Normal Z)

goal (1 subgoal):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)
\<Gamma>\<turnstile> (Call q # cs, css, Normal Z) \<rightarrow> ([the (\<Gamma> q)], (cs, Throw # cs) # css, Normal Z)
[PROOF STEP]
have "\<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>+ ([the (\<Gamma> q)],(cs,Throw#cs)#css,Normal Z)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)
\<Gamma>\<turnstile> (Call q # cs, css, Normal Z) \<rightarrow> ([the (\<Gamma> q)], (cs, Throw # cs) # css, Normal Z)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>+ ([the (\<Gamma> q)], (cs, Throw # cs) # css, Normal Z)
[PROOF STEP]
by (rule rtranclp_into_tranclp1)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>+ ([the (\<Gamma> q)], (cs, Throw # cs) # css, Normal Z)

goal (1 subgoal):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>+ ([the (\<Gamma> q)], (cs, Throw # cs) # css, Normal Z)

goal (1 subgoal):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
assume termi: "\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>

goal (1 subgoal):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>+ ([the (\<Gamma> q)], (cs, Throw # cs) # css, Normal Z)
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>
[PROOF STEP]
show "((Z,q), \<sigma>,p) \<in> termi_call_steps \<Gamma>"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>+ ([the (\<Gamma> q)], (cs, Throw # cs) # css, Normal Z)
\<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>

goal (1 subgoal):
 1. ((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>
[PROOF STEP]
by (auto simp add: termi_call_steps_def)
[PROOF STATE]
proof (state)
this:
((Z, q), \<sigma>, p) \<in> termi_call_steps \<Gamma>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal s))} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Call q,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Call q # cs, css, Normal s))} Call q {t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Call q,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (4 subgoals):
 1. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
case (DynCom c)
[PROOF STATE]
proof (state)
this:
?xa \<in> range c \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>?xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (?xa # cs, css, Normal s))} ?xa {t. \<Gamma>\<turnstile> \<langle>?xa,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>?xa,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (4 subgoals):
 1. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have hyp:
    "\<And>s'. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub>
      {s. s = Z \<and> \<Gamma>\<turnstile>\<langle>c s',Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
            \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and>
          (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c s'#cs,css,Normal s))}
        (c s')
       {t. \<Gamma>\<turnstile>\<langle>c s',Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile>\<langle>c s',Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>s'. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c s',Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c s' # cs, css, Normal s))} c s' {t. \<Gamma>\<turnstile> \<langle>c s',Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c s',Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
using DynCom
[PROOF STATE]
proof (prove)
using this:
?xa \<in> range c \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>?xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (?xa # cs, css, Normal s))} ?xa {t. \<Gamma>\<turnstile> \<langle>?xa,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>?xa,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<And>s'. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c s',Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c s' # cs, css, Normal s))} c s' {t. \<Gamma>\<turnstile> \<langle>c s',Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c s',Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c ?s',Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c ?s' # cs, css, Normal s))} c ?s' {t. \<Gamma>\<turnstile> \<langle>c ?s',Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c ?s',Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (4 subgoals):
 1. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have hyp':
    "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>DynCom c,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                 \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and>
               (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c#cs,css,Normal s))}
        (c Z)
       {t. \<Gamma>\<turnstile>\<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile>\<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal s))} c Z {t. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (rule ConseqMGT [OF hyp],safe)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
show "\<Gamma>\<turnstile>\<langle>c Z,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
by (fastforce simp add: final_notin_def intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix cs css
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
have "\<Gamma>\<turnstile>(DynCom c # cs, css, Normal Z) \<rightarrow> (c Z#cs,css,Normal Z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> (DynCom c # cs, css, Normal Z) \<rightarrow> (c Z # cs, css, Normal Z)
[PROOF STEP]
by (rule step.DynCom)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (DynCom c # cs, css, Normal Z) \<rightarrow> (c Z # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)
[PROOF STEP]
show "\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)

goal (1 subgoal):
 1. \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c Z # cs, css, Normal Z)

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
by (auto intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c Z,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
by (auto intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal s))} c Z {t. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (4 subgoals):
 1. \<And>x Z. (\<And>xa Z. xa \<in> range x \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>xa,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (xa # cs, css, Normal s))} xa {t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>xa,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom x,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom x # cs, css, Normal s))} DynCom x {t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom x,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 4. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal s))} DynCom c {t. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
apply (rule hoaret.DynCom)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>s\<in>{s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal s))}. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal s))} c s {t. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
apply safe
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal s))} c Z {t. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
apply (rule hyp')
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>DynCom c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (DynCom c # cs, css, Normal s))} DynCom c {t. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>DynCom c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (3 subgoals):
 1. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
case (Guard f g c)
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (3 subgoals):
 1. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have hyp_c: "\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub>
         {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
              \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
            (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c#cs,css,Normal s))}
          c
         {t. \<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},
         {t. \<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
using Guard.hyps
[PROOF STATE]
proof (prove)
using this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (3 subgoals):
 1. \<And>x1 x2a c Z. (\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal s))} c {t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t}) \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard x1 x2a c # cs, css, Normal s))} Guard x1 x2a c {t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard x1 x2a c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 3. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>Guard f g c ,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                  \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
            (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c#cs,css,Normal s))}
              Guard f g c
              {t. \<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow> Normal t},
              {t. \<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (cases "f \<in> F")
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. f \<in> F \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. f \<notin> F \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
case True
[PROOF STATE]
proof (state)
this:
f \<in> F

goal (2 subgoals):
 1. f \<in> F \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. f \<notin> F \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> (g \<inter> {s. s=Z \<and>
                     \<Gamma>\<turnstile>\<langle>Guard f g c ,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                 \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
            (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c#cs,css,Normal s))})
              c
              {t. \<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow> Normal t},
              {t. \<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> (g \<inter> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))}) c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (rule ConseqMGT [OF hyp_c], safe)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 4. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))" "Z\<in>g"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
Z \<in> g

goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 4. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
Z \<in> g

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
by (auto simp add: final_notin_def intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix cs css
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c#cs,css,Normal Z)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "Z \<in> g"
[PROOF STATE]
proof (state)
this:
Z \<in> g

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
hence "\<Gamma>\<turnstile>(Guard f g c#cs,css,Normal Z) \<rightarrow> (c#cs,css,Normal Z)"
[PROOF STATE]
proof (prove)
using this:
Z \<in> g

goal (1 subgoal):
 1. \<Gamma>\<turnstile> (Guard f g c # cs, css, Normal Z) \<rightarrow> (c # cs, css, Normal Z)
[PROOF STEP]
by (rule step.Guard)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Guard f g c # cs, css, Normal Z) \<rightarrow> (c # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
[PROOF STEP]
show "\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c#cs,css,Normal Z)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)

goal (1 subgoal):
 1. \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
             "\<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t" "Z \<in> g"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t
Z \<in> g

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t
Z \<in> g

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
by (auto simp add: final_notin_def intro: exec.intros )
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
              "\<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t" "Z \<in> g"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t
Z \<in> g

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t
Z \<in> g

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
by (auto simp add: final_notin_def intro: exec.intros )
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> (g \<inter> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))}) c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (2 subgoals):
 1. f \<in> F \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. f \<notin> F \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
from True this
[PROOF STATE]
proof (chain)
picking this:
f \<in> F
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> (g \<inter> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))}) c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
f \<in> F
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> (g \<inter> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))}) c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by (rule conseqPre [OF Guarantee]) auto
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. f \<notin> F \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. f \<notin> F \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
case False
[PROOF STATE]
proof (state)
this:
f \<notin> F

goal (1 subgoal):
 1. f \<notin> F \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> (g \<inter> {s. s=Z \<and>
                     \<Gamma>\<turnstile>\<langle>Guard f g c ,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                 \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
            (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c#cs,css,Normal s))})
              c
              {t. \<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow> Normal t},
              {t. \<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> (g \<inter> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))}) c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
proof (rule ConseqMGT [OF hyp_c], safe)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 4. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 4. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
using False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
f \<notin> F

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
by (cases "Z\<in> g") (auto simp add: final_notin_def intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix cs css
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c#cs,css,Normal Z)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
hence "Z \<in> g"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. Z \<in> g
[PROOF STEP]
using False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
f \<notin> F

goal (1 subgoal):
 1. Z \<in> g
[PROOF STEP]
by (auto simp add: final_notin_def intro: exec.GuardFault)
[PROOF STATE]
proof (state)
this:
Z \<in> g

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
hence "\<Gamma>\<turnstile>(Guard f g c#cs,css,Normal Z) \<rightarrow> (c#cs,css,Normal Z)"
[PROOF STATE]
proof (prove)
using this:
Z \<in> g

goal (1 subgoal):
 1. \<Gamma>\<turnstile> (Guard f g c # cs, css, Normal Z) \<rightarrow> (c # cs, css, Normal Z)
[PROOF STEP]
by (rule step.Guard)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Guard f g c # cs, css, Normal Z) \<rightarrow> (c # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
[PROOF STEP]
show "\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c#cs,css,Normal Z)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)

goal (1 subgoal):
 1. \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c # cs, css, Normal Z)

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
        "\<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
using False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Normal t
f \<notin> F

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
by (cases "Z\<in> g") (auto simp add: final_notin_def intro: exec.intros )
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
             "\<Gamma>\<turnstile>\<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>Z \<in> g; \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>Guard f g c ,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
using False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c,Normal Z\<rangle> \<Rightarrow> Abrupt t
f \<notin> F

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t
[PROOF STEP]
by (cases "Z\<in> g") (auto simp add: final_notin_def intro: exec.intros )
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> (g \<inter> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))}) c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. f \<notin> F \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> (g \<inter> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))}) c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> (g \<inter> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))}) c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
apply (rule conseqPre [OF hoaret.Guard])
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} \<subseteq> g \<inter> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))}
[PROOF STEP]
apply clarify
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> Z \<in> g \<inter> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))}
[PROOF STEP]
apply (frule Guard_noFaultStuckD [OF _ False])
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal Z); Z \<in> g\<rbrakk> \<Longrightarrow> Z \<in> g \<inter> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))}
[PROOF STEP]
apply auto
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Guard f g c,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Guard f g c # cs, css, Normal s))} Guard f g c {t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Guard f g c,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (2 subgoals):
 1. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
case Throw
[PROOF STATE]
proof (state)
this:

goal (2 subgoals):
 1. \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
 2. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s=Z \<and> \<Gamma>\<turnstile>\<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                  \<Gamma>\<turnstile>the (\<Gamma> p)\<down>Normal \<sigma> \<and>
                (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw#cs,css,Normal s))}
              Throw
              {t. \<Gamma>\<turnstile>\<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},
              {t. \<Gamma>\<turnstile>\<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by (rule conseqPre [OF hoaret.Throw])
       (blast intro: exec.intros terminates.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Throw,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Throw # cs, css, Normal s))} Throw {t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Throw,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
case (Catch c\<^sub>1 c\<^sub>2)
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal s))} c\<^sub>1 {t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal s))} c\<^sub>2 {t. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have hyp_c1:
   "\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s= Z \<and> \<Gamma>\<turnstile>\<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                    \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and>
                (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1# cs, css,Normal s))}
               c\<^sub>1
              {t. \<Gamma>\<turnstile>\<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile>\<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal s))} c\<^sub>1 {t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
using Catch.hyps
[PROOF STATE]
proof (prove)
using this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal s))} c\<^sub>1 {t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal s))} c\<^sub>2 {t. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal s))} c\<^sub>1 {t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal s))} c\<^sub>1 {t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have hyp_c2:
   "\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s= Z \<and> \<Gamma>\<turnstile>\<langle>c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                     \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and>
                (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2# cs, css,Normal s))}
               c\<^sub>2
              {t. \<Gamma>\<turnstile>\<langle>c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile>\<langle>c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal s))} c\<^sub>2 {t. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
using Catch.hyps
[PROOF STATE]
proof (prove)
using this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal s))} c\<^sub>1 {t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = ?Z \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal s))} c\<^sub>2 {t. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal ?Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal ?Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal s))} c\<^sub>2 {t. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<forall>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal s))} c\<^sub>2 {t. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have
    "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile>\<langle>Catch c\<^sub>1 c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
               \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and>
            (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>)\<rightarrow>\<^sup>*(Catch c\<^sub>1 c\<^sub>2 #cs,css,Normal s))}
            c\<^sub>1
           {t. \<Gamma>\<turnstile>\<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},
           {t. \<Gamma>\<turnstile>\<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t \<and>
               \<Gamma>\<turnstile>\<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault`(-F)) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and>
               (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2# cs, css,Normal t))}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal s))} c\<^sub>1 {t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t))}
[PROOF STEP]
proof (rule ConseqMGT [OF hyp_c1],clarify,safe)
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 5. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (5 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal Z)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 5. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
by (fastforce simp add: final_notin_def intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
fix cs css
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
assume "\<Gamma>\<turnstile>([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)

goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)

goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
have
      "\<Gamma>\<turnstile>(Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z) \<rightarrow> ([c\<^sub>1],(cs,c\<^sub>2#cs)#css,Normal Z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z) \<rightarrow> ([c\<^sub>1], (cs, c\<^sub>2 # cs) # css, Normal Z)
[PROOF STEP]
by (rule step.Catch)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z) \<rightarrow> ([c\<^sub>1], (cs, c\<^sub>2 # cs) # css, Normal Z)

goal (4 subgoals):
 1. \<And>s cs css. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal Z)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 4. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* ([c\<^sub>1], (cs, c\<^sub>2 # cs) # css, Normal Z)
[PROOF STEP]
show "\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal Z)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* ([c\<^sub>1], (cs, c\<^sub>2 # cs) # css, Normal Z)

goal (1 subgoal):
 1. \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal Z)
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>1 # cs, css, Normal Z)

goal (3 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t

goal (3 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 3. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Normal t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t
[PROOF STEP]
by (auto intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
      "\<Gamma>\<turnstile>\<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (2 subgoals):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
 2. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
thus "\<Gamma>\<turnstile>\<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F))"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
\<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)
[PROOF STEP]
by (auto simp add: final_notin_def intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F)

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
fix cs css t
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
assume "\<Gamma>\<turnstile>([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z)

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
have
      "\<Gamma>\<turnstile>(Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z) \<rightarrow> ([c\<^sub>1],(cs,c\<^sub>2#cs)#css,Normal Z)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z) \<rightarrow> ([c\<^sub>1], (cs, c\<^sub>2 # cs) # css, Normal Z)
[PROOF STEP]
by (rule step.Catch)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z) \<rightarrow> ([c\<^sub>1], (cs, c\<^sub>2 # cs) # css, Normal Z)

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z) \<rightarrow> ([c\<^sub>1], (cs, c\<^sub>2 # cs) # css, Normal Z)

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
hence "\<Gamma>\<turnstile>([c\<^sub>1],(cs,c\<^sub>2#cs)#css,Normal Z) \<rightarrow>\<^sup>* ([],(cs,c\<^sub>2#cs)#css,Abrupt t)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t

goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([c\<^sub>1], (cs, c\<^sub>2 # cs) # css, Normal Z) \<rightarrow>\<^sup>* ([], (cs, c\<^sub>2 # cs) # css, Abrupt t)
[PROOF STEP]
by (rule exec_impl_steps)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([c\<^sub>1], (cs, c\<^sub>2 # cs) # css, Normal Z) \<rightarrow>\<^sup>* ([], (cs, c\<^sub>2 # cs) # css, Abrupt t)

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([c\<^sub>1], (cs, c\<^sub>2 # cs) # css, Normal Z) \<rightarrow>\<^sup>* ([], (cs, c\<^sub>2 # cs) # css, Abrupt t)

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
have "\<Gamma>\<turnstile>([],(cs,c\<^sub>2#cs)#css,Abrupt t) \<rightarrow> (c\<^sub>2#cs,css,Normal t)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([], (cs, c\<^sub>2 # cs) # css, Abrupt t) \<rightarrow> (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
by (rule step.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([], (cs, c\<^sub>2 # cs) # css, Abrupt t) \<rightarrow> (c\<^sub>2 # cs, css, Normal t)

goal (1 subgoal):
 1. \<And>s cs css t. \<lbrakk>\<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F); \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma>; \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal Z); \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t\<rbrakk> \<Longrightarrow> \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
show "\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)

goal (1 subgoal):
 1. \<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal s))} c\<^sub>1 {t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t))}

goal (1 subgoal):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal s))} c\<^sub>1 {t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t))}

goal (1 subgoal):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
have "\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {t. \<Gamma>\<turnstile>\<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t \<and>
                  \<Gamma>\<turnstile>\<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>({Stuck} \<union> Fault ` (-F)) \<and>
                  \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and>
                  (\<exists>cs css. \<Gamma>\<turnstile>([the (\<Gamma> p)],[],Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2# cs, css,Normal t))}
               c\<^sub>2
              {t. \<Gamma>\<turnstile>\<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},
              {t. \<Gamma>\<turnstile>\<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Abrupt t}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t))} c\<^sub>2 {t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by (rule ConseqMGT [OF hyp_c2]) (fastforce intro: exec.intros)
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t))} c\<^sub>2 {t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<And>c1 c2 Z. \<lbrakk>\<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c1 # cs, css, Normal s))} c1 {t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c1,Normal Z\<rangle> \<Rightarrow> Abrupt t}; \<And>Z. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c2 # cs, css, Normal s))} c2 {t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}\<rbrakk> \<Longrightarrow> \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c1 c2 # cs, css, Normal s))} Catch c1 c2 {t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c1 c2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal s))} c\<^sub>1 {t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t))}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t))} c\<^sub>2 {t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal s))} c\<^sub>1 {t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t))}
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {t. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal Z\<rangle> \<Rightarrow> Abrupt t \<and> \<Gamma>\<turnstile> \<langle>c\<^sub>2,Normal t\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (c\<^sub>2 # cs, css, Normal t))} c\<^sub>2 {t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal (1 subgoal):
 1. \<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal s))} Catch c\<^sub>1 c\<^sub>2 {t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Abrupt t}
[PROOF STEP]
by (rule hoaret.Catch)
[PROOF STATE]
proof (state)
this:
\<Gamma>,\<Theta>\<turnstile>\<^sub>t\<^bsub>/F\<^esub> {s. s = Z \<and> \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal s\<rangle> \<Rightarrow>\<notin>{Stuck} \<union> Fault ` (- F) \<and> \<Gamma>\<turnstile>the (\<Gamma> p) \<down> Normal \<sigma> \<and> (\<exists>cs css. \<Gamma>\<turnstile> ([the (\<Gamma> p)], [], Normal \<sigma>) \<rightarrow>\<^sup>* (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal s))} Catch c\<^sub>1 c\<^sub>2 {t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Normal t},{t. \<Gamma>\<turnstile> \<langle>Catch c\<^sub>1 c\<^sub>2,Normal Z\<rangle> \<Rightarrow> Abrupt t}

goal:
No subgoals!
[PROOF STEP]
qed