[STATEMENT]
lemma steps_Abrupt: "\<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
proof (induct c)
[PROOF STATE]
proof (state)
goal (11 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Seq c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
case (Seq c\<^sub>1 c\<^sub>2)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (c\<^sub>1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
\<Gamma>\<turnstile> (c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)

goal (11 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Seq c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
have steps_c\<^sub>1: "\<Gamma>\<turnstile> (c\<^sub>1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> (c\<^sub>1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (c\<^sub>1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)

goal (11 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Seq c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
have steps_c\<^sub>2: "\<Gamma>\<turnstile> (c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> (c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)

goal (11 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Seq c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
from SeqSteps [OF steps_c\<^sub>1 refl refl]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> (Seq c\<^sub>1 ?c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Seq Skip ?c\<^sub>2, Abrupt s)
[PROOF STEP]
have "\<Gamma>\<turnstile> (Seq c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Seq Skip c\<^sub>2, Abrupt s)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> (Seq c\<^sub>1 ?c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Seq Skip ?c\<^sub>2, Abrupt s)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> (Seq c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Seq Skip c\<^sub>2, Abrupt s)
[PROOF STEP]
.
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Seq c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Seq Skip c\<^sub>2, Abrupt s)

goal (11 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Seq c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Seq c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Seq Skip c\<^sub>2, Abrupt s)

goal (11 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Seq c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
have "\<Gamma>\<turnstile> (Seq Skip c\<^sub>2, Abrupt s) \<rightarrow> (c\<^sub>2, Abrupt s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> (Seq Skip c\<^sub>2, Abrupt s) \<rightarrow> (c\<^sub>2, Abrupt s)
[PROOF STEP]
by (rule SeqSkip)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Seq Skip c\<^sub>2, Abrupt s) \<rightarrow> (c\<^sub>2, Abrupt s)

goal (11 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Seq c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Seq Skip c\<^sub>2, Abrupt s) \<rightarrow> (c\<^sub>2, Abrupt s)

goal (11 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Seq c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
note steps_c\<^sub>2
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)

goal (11 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Seq c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> (Seq c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> (Seq c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> (Seq c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Seq c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)

goal (10 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Catch c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (10 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Catch c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
case (Catch c\<^sub>1 c\<^sub>2)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (c\<^sub>1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
\<Gamma>\<turnstile> (c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)

goal (10 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Catch c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
have steps_c\<^sub>1: "\<Gamma>\<turnstile> (c\<^sub>1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> (c\<^sub>1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (c\<^sub>1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)

goal (10 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Catch c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
from CatchSteps [OF steps_c\<^sub>1 refl refl]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> (Catch c\<^sub>1 ?c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Catch Skip ?c\<^sub>2, Abrupt s)
[PROOF STEP]
have "\<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Catch Skip c\<^sub>2, Abrupt s)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> (Catch c\<^sub>1 ?c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Catch Skip ?c\<^sub>2, Abrupt s)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Catch Skip c\<^sub>2, Abrupt s)
[PROOF STEP]
.
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Catch Skip c\<^sub>2, Abrupt s)

goal (10 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Catch c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Catch Skip c\<^sub>2, Abrupt s)

goal (10 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Catch c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
have "\<Gamma>\<turnstile> (Catch Skip c\<^sub>2, Abrupt s) \<rightarrow> (Skip, Abrupt s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma>\<turnstile> (Catch Skip c\<^sub>2, Abrupt s) \<rightarrow> (Skip, Abrupt s)
[PROOF STEP]
by (rule CatchSkip)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Catch Skip c\<^sub>2, Abrupt s) \<rightarrow> (Skip, Abrupt s)

goal (10 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 10. \<And>c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Catch c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> (Catch c\<^sub>1 c\<^sub>2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)

goal (9 subgoals):
 1. \<Gamma>\<turnstile> (Skip, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 2. \<And>x. \<Gamma>\<turnstile> (Basic x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 3. \<And>x. \<Gamma>\<turnstile> (Spec x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 4. \<And>x1 c1 c2. \<lbrakk>\<Gamma>\<turnstile> (c1, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s); \<Gamma>\<turnstile> (c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)\<rbrakk> \<Longrightarrow> \<Gamma>\<turnstile> (Cond x1 c1 c2, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 5. \<And>x1 c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (While x1 c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 6. \<And>x. \<Gamma>\<turnstile> (Call x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 7. \<And>x. (\<And>xa. xa \<in> range x \<Longrightarrow> \<Gamma>\<turnstile> (xa, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)) \<Longrightarrow> \<Gamma>\<turnstile> (DynCom x, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 8. \<And>x1 x2a c. \<Gamma>\<turnstile> (c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s) \<Longrightarrow> \<Gamma>\<turnstile> (Guard x1 x2a c, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
 9. \<Gamma>\<turnstile> (Throw, Abrupt s) \<rightarrow>\<^sup>* (Skip, Abrupt s)
[PROOF STEP]
qed (fastforce intro: step.intros)+


[STATEMENT]
lemma true_Guard: "true `&` P = P"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. true `&` P = P
[PROOF STEP]
apply (subst relation_of_inject[symmetric])
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. action.relation_of true `&` P = action.relation_of P
[PROOF STEP]
apply (subst relation_of_Guard)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. R (true \<circ> alpha_rp.more \<circ> fst \<longrightarrow> \<not> action.relation_of P\<^sup>f\<^sub>f \<turnstile> true \<circ> alpha_rp.more \<circ> fst \<and> action.relation_of P\<^sup>t\<^sub>f \<or> \<not> true \<circ> alpha_rp.more \<circ> fst \<and> (\<lambda>(A, A'). tr A' = tr A \<and> wait A')) = action.relation_of P
[PROOF STEP]
apply (subst CSP_is_rd[OF relation_of_CSP])
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. R (true \<circ> alpha_rp.more \<circ> fst \<longrightarrow> \<not> R (\<not> action.relation_of P\<^sup>f\<^sub>f \<turnstile> action.relation_of P\<^sup>t\<^sub>f)\<^sup>f\<^sub>f \<turnstile> true \<circ> alpha_rp.more \<circ> fst \<and> action.relation_of P\<^sup>t\<^sub>f \<or> \<not> true \<circ> alpha_rp.more \<circ> fst \<and> (\<lambda>(A, A'). tr A' = tr A \<and> wait A')) = action.relation_of P
[PROOF STEP]
back
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. R (true \<circ> alpha_rp.more \<circ> fst \<longrightarrow> \<not> action.relation_of P\<^sup>f\<^sub>f \<turnstile> true \<circ> alpha_rp.more \<circ> fst \<and> R (\<not> action.relation_of P\<^sup>f\<^sub>f \<turnstile> action.relation_of P\<^sup>t\<^sub>f)\<^sup>t\<^sub>f \<or> \<not> true \<circ> alpha_rp.more \<circ> fst \<and> (\<lambda>(A, A'). tr A' = tr A \<and> wait A')) = action.relation_of P
[PROOF STEP]
back
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. R (true \<circ> alpha_rp.more \<circ> fst \<longrightarrow> \<not> action.relation_of P\<^sup>f\<^sub>f \<turnstile> true \<circ> alpha_rp.more \<circ> fst \<and> action.relation_of P\<^sup>t\<^sub>f \<or> \<not> true \<circ> alpha_rp.more \<circ> fst \<and> (\<lambda>(A, A'). tr A' = tr A \<and> wait A')) = R (\<not> action.relation_of P\<^sup>f\<^sub>f \<turnstile> action.relation_of P\<^sup>t\<^sub>f)
[PROOF STEP]
apply (simp add: fun_eq_iff utp_defs csp_defs design_defs rp_defs)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done


[STATEMENT]
lemma "simple_linux_router_nol12 rt fw p \<equiv> do {
	let rd = routing_table_semantics rt (p_dst p);
	let p = p\<lparr>p_oiface := output_iface rd\<rparr>;
	let fd = simple_fw fw p;
	_ \<leftarrow> (case fd of Decision FinalAllow \<Rightarrow> Some () | Decision FinalDeny \<Rightarrow> None);
	Some p
}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. simple_linux_router_nol12 rt fw p \<equiv> let rd = routing_table_semantics rt (p_dst p); p = p\<lparr>p_oiface := output_iface rd\<rparr>; fd = simple_fw fw p in (case fd of Decision FinalAllow \<Rightarrow> Some () | Decision FinalDeny \<Rightarrow> None) \<bind> (\<lambda>_. Some p)
[PROOF STEP]
by(fact simple_linux_router_nol12_def)


[STATEMENT]
lemma "Ex P \<longrightarrow> P (The P)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Ex P \<longrightarrow> P (The P)
[PROOF STEP]
nitpick [expect = genuine]
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Ex P \<longrightarrow> P (The P)
[PROOF STEP]
oops