[STATEMENT]
theorem terminates_impl_not_inf:
  assumes termi: "\<Gamma>\<turnstile>c \<down> s"
  shows "\<not>inf \<Gamma> [c] [] s"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] s
[PROOF STEP]
using termi
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile>c \<down> s

goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] s
[PROOF STEP]
proof induct
[PROOF STATE]
proof (state)
goal (18 subgoals):
 1. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Skip] [] (Normal s)
 2. \<And>f s. \<not> AlternativeSmallStep.inf \<Gamma> [Basic f] [] (Normal s)
 3. \<And>r s. \<not> AlternativeSmallStep.inf \<Gamma> [Spec r] [] (Normal s)
 4. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 5. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 6. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 7. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 8. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 9. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 10. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
A total of 18 subgoals...
[PROOF STEP]
case (Skip s)
[PROOF STATE]
proof (state)
this:

goal (18 subgoals):
 1. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Skip] [] (Normal s)
 2. \<And>f s. \<not> AlternativeSmallStep.inf \<Gamma> [Basic f] [] (Normal s)
 3. \<And>r s. \<not> AlternativeSmallStep.inf \<Gamma> [Spec r] [] (Normal s)
 4. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 5. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 6. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 7. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 8. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 9. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 10. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
A total of 18 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [Skip] [] (Normal s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Skip], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Skip], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Skip], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([Skip], [], Normal s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([Skip], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Skip], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Skip], [], Normal s)
[PROOF STEP]
have "f (Suc 0) = ([],[],Normal s)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Skip], [], Normal s)

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Normal s)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Skip], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step [of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Normal s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [Skip] [] (Normal s)

goal (17 subgoals):
 1. \<And>f s. \<not> AlternativeSmallStep.inf \<Gamma> [Basic f] [] (Normal s)
 2. \<And>r s. \<not> AlternativeSmallStep.inf \<Gamma> [Spec r] [] (Normal s)
 3. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 4. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 5. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 6. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 7. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 8. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 9. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 10. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
A total of 17 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (17 subgoals):
 1. \<And>f s. \<not> AlternativeSmallStep.inf \<Gamma> [Basic f] [] (Normal s)
 2. \<And>r s. \<not> AlternativeSmallStep.inf \<Gamma> [Spec r] [] (Normal s)
 3. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 4. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 5. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 6. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 7. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 8. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 9. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 10. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
A total of 17 subgoals...
[PROOF STEP]
case (Basic g s)
[PROOF STATE]
proof (state)
this:

goal (17 subgoals):
 1. \<And>f s. \<not> AlternativeSmallStep.inf \<Gamma> [Basic f] [] (Normal s)
 2. \<And>r s. \<not> AlternativeSmallStep.inf \<Gamma> [Spec r] [] (Normal s)
 3. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 4. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 5. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 6. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 7. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 8. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 9. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 10. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
A total of 17 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [Basic g] [] (Normal s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Basic g], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Basic g], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Basic g], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([Basic g], [], Normal s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([Basic g], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Basic g], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Basic g], [], Normal s)
[PROOF STEP]
have "f (Suc 0) = ([],[],Normal (g s))"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Basic g], [], Normal s)

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Normal (g s))
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Normal (g s))

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Basic g], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step [of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Normal (g s))
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Normal (g s))

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [Basic g] [] (Normal s)

goal (16 subgoals):
 1. \<And>r s. \<not> AlternativeSmallStep.inf \<Gamma> [Spec r] [] (Normal s)
 2. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 3. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 4. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 5. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 6. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 7. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 8. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 9. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 10. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
A total of 16 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (16 subgoals):
 1. \<And>r s. \<not> AlternativeSmallStep.inf \<Gamma> [Spec r] [] (Normal s)
 2. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 3. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 4. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 5. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 6. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 7. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 8. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 9. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 10. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
A total of 16 subgoals...
[PROOF STEP]
case (Spec r s)
[PROOF STATE]
proof (state)
this:

goal (16 subgoals):
 1. \<And>r s. \<not> AlternativeSmallStep.inf \<Gamma> [Spec r] [] (Normal s)
 2. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 3. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 4. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 5. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 6. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 7. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 8. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 9. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 10. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
A total of 16 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [Spec r] [] (Normal s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Spec r], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Spec r], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Spec r], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([Spec r], [], Normal s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([Spec r], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Spec r], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step [of 0]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Spec r], [], Normal s)
[PROOF STEP]
have "\<Gamma>\<turnstile>([Spec r], [], Normal s) \<rightarrow> f (Suc 0)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Spec r], [], Normal s)

goal (1 subgoal):
 1. \<Gamma>\<turnstile> ([Spec r], [], Normal s) \<rightarrow> f (Suc 0)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> ([Spec r], [], Normal s) \<rightarrow> f (Suc 0)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Spec r], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> ([Spec r], [], Normal s) \<rightarrow> f (Suc 0)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> ([Spec r], [], Normal s) \<rightarrow> f (Suc 0)

goal (1 subgoal):
 1. False
[PROOF STEP]
proof (cases)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>t. \<lbrakk>f (Suc 0) = ([], [], Normal t); (s, t) \<in> r\<rbrakk> \<Longrightarrow> False
 2. \<lbrakk>f (Suc 0) = ([], [], Stuck); \<forall>t. (s, t) \<notin> r\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>t. \<lbrakk>f (Suc 0) = ([], [], Normal t); (s, t) \<in> r\<rbrakk> \<Longrightarrow> False
 2. \<lbrakk>f (Suc 0) = ([], [], Stuck); \<forall>t. (s, t) \<notin> r\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume "(s, t) \<in> r" "f (Suc 0) = ([], [], Normal t)"
[PROOF STATE]
proof (state)
this:
(s, t) \<in> r
f (Suc 0) = ([], [], Normal t)

goal (2 subgoals):
 1. \<And>t. \<lbrakk>f (Suc 0) = ([], [], Normal t); (s, t) \<in> r\<rbrakk> \<Longrightarrow> False
 2. \<lbrakk>f (Suc 0) = ([], [], Stuck); \<forall>t. (s, t) \<notin> r\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step [of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
(s, t) \<in> r
f (Suc 0) = ([], [], Normal t)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
(s, t) \<in> r
f (Suc 0) = ([], [], Normal t)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal (1 subgoal):
 1. \<lbrakk>f (Suc 0) = ([], [], Stuck); \<forall>t. (s, t) \<notin> r\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>f (Suc 0) = ([], [], Stuck); \<forall>t. (s, t) \<notin> r\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume "\<forall>t. (s, t) \<notin> r" "f (Suc 0) = ([], [], Stuck)"
[PROOF STATE]
proof (state)
this:
\<forall>t. (s, t) \<notin> r
f (Suc 0) = ([], [], Stuck)

goal (1 subgoal):
 1. \<lbrakk>f (Suc 0) = ([], [], Stuck); \<forall>t. (s, t) \<notin> r\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step [of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
\<forall>t. (s, t) \<notin> r
f (Suc 0) = ([], [], Stuck)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
\<forall>t. (s, t) \<notin> r
f (Suc 0) = ([], [], Stuck)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [Spec r] [] (Normal s)

goal (15 subgoals):
 1. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 2. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 3. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 4. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 5. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 6. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 7. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 8. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 9. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 10. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
A total of 15 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (15 subgoals):
 1. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 2. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 3. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 4. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 5. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 6. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 7. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 8. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 9. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 10. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
A total of 15 subgoals...
[PROOF STEP]
case (Guard s g c m)
[PROOF STATE]
proof (state)
this:
s \<in> g
\<Gamma>\<turnstile>c \<down> Normal s
\<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)

goal (15 subgoals):
 1. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 2. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 3. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 4. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 5. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 6. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 7. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 8. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 9. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 10. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
A total of 15 subgoals...
[PROOF STEP]
have g: "s \<in> g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s \<in> g
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
s \<in> g

goal (15 subgoals):
 1. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 2. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 3. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 4. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 5. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 6. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 7. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 8. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 9. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 10. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
A total of 15 subgoals...
[PROOF STEP]
have hyp: "\<not> inf \<Gamma> [c] [] (Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)

goal (15 subgoals):
 1. \<And>s g c f. \<lbrakk>s \<in> g; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 2. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 3. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 4. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 5. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 6. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 7. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 8. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 9. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 10. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
A total of 15 subgoals...
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [Guard m g c] [] (Normal s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Guard m g c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Guard m g c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Guard m g c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([Guard m g c], [], Normal s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([Guard m g c], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Guard m g c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from g f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
s \<in> g
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Guard m g c], [], Normal s)
[PROOF STEP]
have "f (Suc 0) = ([c],[],Normal s)"
[PROOF STATE]
proof (prove)
using this:
s \<in> g
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Guard m g c], [], Normal s)

goal (1 subgoal):
 1. f (Suc 0) = ([c], [], Normal s)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([c], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Guard m g c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)
f (Suc 0) = ([c], [], Normal s)
[PROOF STEP]
have "inf \<Gamma> [c] [] (Normal s)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)
f (Suc 0) = ([c], [], Normal s)

goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)
[PROOF STEP]
apply (simp add: inf_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i); f (Suc 0) = ([c], [], Normal s)\<rbrakk> \<Longrightarrow> \<exists>f. f 0 = ([c], [], Normal s) \<and> (\<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i))
[PROOF STEP]
apply (rule_tac x="\<lambda>i. f (Suc i)" in exI)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i); f (Suc 0) = ([c], [], Normal s)\<rbrakk> \<Longrightarrow> f (Suc 0) = ([c], [], Normal s) \<and> (\<forall>i. \<Gamma>\<turnstile> f (Suc i) \<rightarrow> f (Suc (Suc i)))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Guard m g c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with hyp
[PROOF STATE]
proof (chain)
picking this:
\<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
..
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [Guard m g c] [] (Normal s)

goal (14 subgoals):
 1. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 2. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 3. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 5. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 6. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 7. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 8. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 9. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 10. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
A total of 14 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (14 subgoals):
 1. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 2. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 3. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 5. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 6. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 7. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 8. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 9. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 10. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
A total of 14 subgoals...
[PROOF STEP]
case (GuardFault s g m c)
[PROOF STATE]
proof (state)
this:
s \<notin> g

goal (14 subgoals):
 1. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 2. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 3. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 5. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 6. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 7. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 8. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 9. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 10. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
A total of 14 subgoals...
[PROOF STEP]
have g: "s \<notin> g"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s \<notin> g
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
s \<notin> g

goal (14 subgoals):
 1. \<And>s g f c. s \<notin> g \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Guard f g c] [] (Normal s)
 2. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 3. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 5. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 6. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 7. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 8. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 9. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 10. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
A total of 14 subgoals...
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [Guard m g c] [] (Normal s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Guard m g c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Guard m g c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Guard m g c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([Guard m g c], [], Normal s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([Guard m g c], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Guard m g c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from g f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
s \<notin> g
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Guard m g c], [], Normal s)
[PROOF STEP]
have "f (Suc 0) = ([],[],Fault m)"
[PROOF STATE]
proof (prove)
using this:
s \<notin> g
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Guard m g c], [], Normal s)

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Fault m)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Fault m)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Guard m g c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step [of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Fault m)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Fault m)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [Guard m g c] [] (Normal s)

goal (13 subgoals):
 1. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 2. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 5. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 6. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 7. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 8. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 9. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 10. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
A total of 13 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (13 subgoals):
 1. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 2. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 5. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 6. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 7. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 8. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 9. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 10. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
A total of 13 subgoals...
[PROOF STEP]
case (Fault c m)
[PROOF STATE]
proof (state)
this:

goal (13 subgoals):
 1. \<And>c f. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault f)
 2. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 5. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 6. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 7. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 8. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 9. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 10. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
A total of 13 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault m)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Fault m); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Fault m); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Fault m); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([c], [], Fault m)"
[PROOF STATE]
proof (state)
this:
f 0 = ([c], [], Fault m)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Fault m); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([c], [], Fault m)
[PROOF STEP]
have "f (Suc 0) = ([],[],Fault m)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([c], [], Fault m)

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Fault m)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Fault m)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Fault m); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step [of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Fault m)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Fault m)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Fault m)

goal (12 subgoals):
 1. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 5. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 6. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 7. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 8. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 9. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 10. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
A total of 12 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (12 subgoals):
 1. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 5. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 6. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 7. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 8. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 9. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 10. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
A total of 12 subgoals...
[PROOF STEP]
case (Seq c1 s c2)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile>c1 \<down> Normal s
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
\<forall>s'. \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c2] [] s'

goal (12 subgoals):
 1. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 5. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 6. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 7. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 8. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 9. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 10. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
A total of 12 subgoals...
[PROOF STEP]
have hyp_c1: "\<not> inf \<Gamma> [c1] [] (Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)

goal (12 subgoals):
 1. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 5. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 6. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 7. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 8. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 9. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 10. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
A total of 12 subgoals...
[PROOF STEP]
have hyp_c2: "\<forall>s'. \<Gamma>\<turnstile>\<langle>c1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c2 \<down> s' \<and> \<not> inf \<Gamma> [c2] [] s'"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>s'. \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c2] [] s'
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<forall>s'. \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c2] [] s'

goal (12 subgoals):
 1. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 5. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 6. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 7. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 8. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 9. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 10. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
A total of 12 subgoals...
[PROOF STEP]
have "\<not> inf \<Gamma> ([c1,c2]) [] (Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c1, c2] [] (Normal s)
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [c1, c2] [] (Normal s) \<Longrightarrow> False
[PROOF STEP]
assume "inf \<Gamma> [c1, c2] [] (Normal s)"
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [c1, c2] [] (Normal s)

goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [c1, c2] [] (Normal s) \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
AlternativeSmallStep.inf \<Gamma> [c1, c2] [] (Normal s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
AlternativeSmallStep.inf \<Gamma> [c1, c2] [] (Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
proof (cases rule: infE)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s) \<Longrightarrow> False
 2. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [c2] [] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume "inf \<Gamma> [c1] [] (Normal s)"
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)

goal (2 subgoals):
 1. AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s) \<Longrightarrow> False
 2. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [c2] [] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with hyp_c1
[PROOF STATE]
proof (chain)
picking this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
False

goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [c2] [] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [c2] [] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [c2] [] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>c1,Normal s\<rangle> \<Rightarrow> t" "inf \<Gamma> [c2] [] t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t
AlternativeSmallStep.inf \<Gamma> [c2] [] t

goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [c2] [] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with hyp_c2
[PROOF STATE]
proof (chain)
picking this:
\<forall>s'. \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c2] [] s'
\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t
AlternativeSmallStep.inf \<Gamma> [c2] [] t
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<forall>s'. \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c2] [] s'
\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t
AlternativeSmallStep.inf \<Gamma> [c2] [] t

goal (1 subgoal):
 1. False
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1, c2] [] (Normal s)

goal (12 subgoals):
 1. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Seq c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 4. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 5. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 6. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 7. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 8. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 9. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 10. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
A total of 12 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1, c2] [] (Normal s)

goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [Seq c1 c2] [] (Normal s)
[PROOF STEP]
by (simp add: inf_Seq)
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [Seq c1 c2] [] (Normal s)

goal (11 subgoals):
 1. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 4. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 5. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 6. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 7. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 8. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 9. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 10. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (11 subgoals):
 1. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 4. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 5. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 6. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 7. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 8. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 9. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 10. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
case (CondTrue s b c1 c2)
[PROOF STATE]
proof (state)
this:
s \<in> b
\<Gamma>\<turnstile>c1 \<down> Normal s
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)

goal (11 subgoals):
 1. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 4. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 5. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 6. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 7. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 8. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 9. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 10. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
have b: "s \<in> b"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s \<in> b
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
s \<in> b

goal (11 subgoals):
 1. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 4. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 5. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 6. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 7. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 8. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 9. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 10. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
have hyp_c1: "\<not> inf \<Gamma> [c1] [] (Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)

goal (11 subgoals):
 1. \<And>s b c\<^sub>1 c\<^sub>2. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 3. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 4. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 5. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 6. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 7. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 8. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 9. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 10. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
A total of 11 subgoals...
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c1 c2] [] (Normal s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Cond b c1 c2], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Cond b c1 c2], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Cond b c1 c2], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([Cond b c1 c2], [], Normal s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([Cond b c1 c2], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Cond b c1 c2], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from b f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
s \<in> b
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Cond b c1 c2], [], Normal s)
[PROOF STEP]
have "f 1 = ([c1],[],Normal s)"
[PROOF STATE]
proof (prove)
using this:
s \<in> b
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Cond b c1 c2], [], Normal s)

goal (1 subgoal):
 1. f 1 = ([c1], [], Normal s)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f 1 = ([c1], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Cond b c1 c2], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)
f 1 = ([c1], [], Normal s)
[PROOF STEP]
have "inf \<Gamma> [c1] [] (Normal s)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)
f 1 = ([c1], [], Normal s)

goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
[PROOF STEP]
apply (simp add: inf_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i); f (Suc 0) = ([c1], [], Normal s)\<rbrakk> \<Longrightarrow> \<exists>f. f 0 = ([c1], [], Normal s) \<and> (\<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i))
[PROOF STEP]
apply (rule_tac x="\<lambda>i. f (Suc i)" in exI)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i); f (Suc 0) = ([c1], [], Normal s)\<rbrakk> \<Longrightarrow> f (Suc 0) = ([c1], [], Normal s) \<and> (\<forall>i. \<Gamma>\<turnstile> f (Suc i) \<rightarrow> f (Suc (Suc i)))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Cond b c1 c2], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with hyp_c1
[PROOF STATE]
proof (chain)
picking this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [Cond b c1 c2] [] (Normal s)

goal (10 subgoals):
 1. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 3. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 4. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 5. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 6. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 7. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 8. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 9. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 10. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (10 subgoals):
 1. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 3. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 4. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 5. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 6. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 7. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 8. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 9. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 10. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
case (CondFalse s b c2 c1)
[PROOF STATE]
proof (state)
this:
s \<notin> b
\<Gamma>\<turnstile>c2 \<down> Normal s
\<not> AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s)

goal (10 subgoals):
 1. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 3. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 4. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 5. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 6. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 7. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 8. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 9. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 10. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have b: "s \<notin> b"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s \<notin> b
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
s \<notin> b

goal (10 subgoals):
 1. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 3. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 4. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 5. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 6. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 7. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 8. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 9. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 10. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have hyp_c2: "\<not> inf \<Gamma> [c2] [] (Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s)
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s)

goal (10 subgoals):
 1. \<And>s b c\<^sub>2 c\<^sub>1. \<lbrakk>s \<notin> b; \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c\<^sub>1 c\<^sub>2] [] (Normal s)
 2. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 3. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 4. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 5. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 6. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 7. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 8. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 9. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 10. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [Cond b c1 c2] [] (Normal s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Cond b c1 c2], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Cond b c1 c2], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Cond b c1 c2], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([Cond b c1 c2], [], Normal s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([Cond b c1 c2], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Cond b c1 c2], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from b f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
s \<notin> b
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Cond b c1 c2], [], Normal s)
[PROOF STEP]
have "f 1 = ([c2],[],Normal s)"
[PROOF STATE]
proof (prove)
using this:
s \<notin> b
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Cond b c1 c2], [], Normal s)

goal (1 subgoal):
 1. f 1 = ([c2], [], Normal s)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f 1 = ([c2], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Cond b c1 c2], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)
f 1 = ([c2], [], Normal s)
[PROOF STEP]
have "inf \<Gamma> [c2] [] (Normal s)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)
f 1 = ([c2], [], Normal s)

goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s)
[PROOF STEP]
apply (simp add: inf_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i); f (Suc 0) = ([c2], [], Normal s)\<rbrakk> \<Longrightarrow> \<exists>f. f 0 = ([c2], [], Normal s) \<and> (\<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i))
[PROOF STEP]
apply (rule_tac x="\<lambda>i. f (Suc i)" in exI)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i); f (Suc 0) = ([c2], [], Normal s)\<rbrakk> \<Longrightarrow> f (Suc 0) = ([c2], [], Normal s) \<and> (\<forall>i. \<Gamma>\<turnstile> f (Suc i) \<rightarrow> f (Suc (Suc i)))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Cond b c1 c2], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with hyp_c2
[PROOF STATE]
proof (chain)
picking this:
\<not> AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<not> AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [Cond b c1 c2] [] (Normal s)

goal (9 subgoals):
 1. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 2. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 3. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 4. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 5. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 6. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 7. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 8. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 9. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (9 subgoals):
 1. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 2. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 3. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 4. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 5. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 6. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 7. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 8. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 9. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
case (WhileTrue s b c)
[PROOF STATE]
proof (state)
this:
s \<in> b
\<Gamma>\<turnstile>c \<down> Normal s
\<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)
\<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'

goal (9 subgoals):
 1. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 2. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 3. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 4. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 5. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 6. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 7. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 8. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 9. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have b: "s \<in> b"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s \<in> b
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
s \<in> b

goal (9 subgoals):
 1. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 2. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 3. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 4. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 5. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 6. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 7. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 8. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 9. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have hyp_c: "\<not> inf \<Gamma> [c] [] (Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)

goal (9 subgoals):
 1. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 2. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 3. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 4. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 5. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 6. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 7. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 8. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 9. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have hyp_w: "\<forall>s'. \<Gamma>\<turnstile>\<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow>
                      \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> inf \<Gamma> [While b c] [] s'"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'

goal (9 subgoals):
 1. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 2. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 3. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 4. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 5. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 6. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 7. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 8. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 9. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have "\<not> inf \<Gamma> [c,While b c] [] (Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c, While b c] [] (Normal s)
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [c, While b c] [] (Normal s) \<Longrightarrow> False
[PROOF STEP]
assume "inf \<Gamma> [c,While b c] [] (Normal s)"
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [c, While b c] [] (Normal s)

goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [c, While b c] [] (Normal s) \<Longrightarrow> False
[PROOF STEP]
from this hyp_c hyp_w
[PROOF STATE]
proof (chain)
picking this:
AlternativeSmallStep.inf \<Gamma> [c, While b c] [] (Normal s)
\<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)
\<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
AlternativeSmallStep.inf \<Gamma> [c, While b c] [] (Normal s)
\<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s)
\<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'

goal (1 subgoal):
 1. False
[PROOF STEP]
by (cases rule: infE) auto
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c, While b c] [] (Normal s)

goal (9 subgoals):
 1. \<And>s b c. \<lbrakk>s \<in> b; \<Gamma>\<turnstile>c \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c,Normal s\<rangle> \<Rightarrow> s' \<longrightarrow> \<Gamma>\<turnstile>While b c \<down> s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] s'\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 2. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 3. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 4. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 5. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 6. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 7. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 8. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 9. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
with b
[PROOF STATE]
proof (chain)
picking this:
s \<in> b
\<not> AlternativeSmallStep.inf \<Gamma> [c, While b c] [] (Normal s)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
s \<in> b
\<not> AlternativeSmallStep.inf \<Gamma> [c, While b c] [] (Normal s)

goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
[PROOF STEP]
by (simp add: inf_WhileTrue)
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)

goal (8 subgoals):
 1. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 2. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 3. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 4. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 5. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 6. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 7. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 8. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (8 subgoals):
 1. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 2. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 3. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 4. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 5. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 6. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 7. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 8. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
case (WhileFalse s b c)
[PROOF STATE]
proof (state)
this:
s \<notin> b

goal (8 subgoals):
 1. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 2. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 3. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 4. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 5. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 6. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 7. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 8. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have b: "s \<notin> b"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s \<notin> b
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
s \<notin> b

goal (8 subgoals):
 1. \<And>s b c. s \<notin> b \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
 2. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 3. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 4. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 5. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 6. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 7. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 8. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([While b c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([While b c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([While b c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([While b c], [], Normal s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([While b c], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([While b c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from b f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
s \<notin> b
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([While b c], [], Normal s)
[PROOF STEP]
have "f (Suc 0) = ([],[],Normal s)"
[PROOF STATE]
proof (prove)
using this:
s \<notin> b
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([While b c], [], Normal s)

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Normal s)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([While b c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step [of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Normal s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [While b c] [] (Normal s)

goal (7 subgoals):
 1. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 2. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 3. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 4. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 5. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 6. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 7. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (7 subgoals):
 1. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 2. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 3. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 4. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 5. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 6. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 7. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
case (Call p bdy s)
[PROOF STATE]
proof (state)
this:
\<Gamma> p = Some bdy
\<Gamma>\<turnstile>bdy \<down> Normal s
\<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)

goal (7 subgoals):
 1. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 2. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 3. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 4. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 5. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 6. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 7. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have bdy: "\<Gamma> p = Some bdy"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma> p = Some bdy
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<Gamma> p = Some bdy

goal (7 subgoals):
 1. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 2. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 3. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 4. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 5. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 6. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 7. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have hyp: "\<not> inf \<Gamma> [bdy] [] (Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)

goal (7 subgoals):
 1. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 2. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 3. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 4. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 5. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 6. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 7. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have not_inf_bdy:
    "\<not> inf \<Gamma> [bdy] [([],[Throw])] (Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s)
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s) \<Longrightarrow> False
[PROOF STEP]
assume "inf \<Gamma> [bdy] [([],[Throw])] (Normal s)"
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s)

goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s) \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
proof (rule infE)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s) \<Longrightarrow> False
 2. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>bdy,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [Throw])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume "inf \<Gamma> [bdy] [] (Normal s)"
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)

goal (2 subgoals):
 1. AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s) \<Longrightarrow> False
 2. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>bdy,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [Throw])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with hyp
[PROOF STATE]
proof (chain)
picking this:
\<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
False

goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>bdy,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [Throw])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>bdy,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [Throw])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>bdy,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [Throw])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume "\<Gamma>\<turnstile>\<langle>bdy,Normal s\<rangle> \<Rightarrow> t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>bdy,Normal s\<rangle> \<Rightarrow> t

goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>bdy,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [Throw])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume inf: "inf \<Gamma> [] [([], [Throw])] t"
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [] [([], [Throw])] t

goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>bdy,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [Throw])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
AlternativeSmallStep.inf \<Gamma> [] [([], [Throw])] t
[PROOF STEP]
obtain f where
        f_0: "f 0 = ([],[([], [Throw])],t)" and
        f_step: "\<forall>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (prove)
using this:
AlternativeSmallStep.inf \<Gamma> [] [([], [Throw])] t

goal (1 subgoal):
 1. (\<And>f. \<lbrakk>f 0 = ([], [([], [Throw])], t); \<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (auto simp add: inf_def)
[PROOF STATE]
proof (state)
this:
f 0 = ([], [([], [Throw])], t)
\<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)

goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>bdy,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [Throw])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. False
[PROOF STEP]
proof (cases t)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>x1. t = Normal x1 \<Longrightarrow> False
 2. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 3. \<And>x3. t = Fault x3 \<Longrightarrow> False
 4. t = Stuck \<Longrightarrow> False
[PROOF STEP]
case (Normal t')
[PROOF STATE]
proof (state)
this:
t = Normal t'

goal (4 subgoals):
 1. \<And>x1. t = Normal x1 \<Longrightarrow> False
 2. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 3. \<And>x3. t = Fault x3 \<Longrightarrow> False
 4. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_0 f_step [rule_format, of 0]
[PROOF STATE]
proof (chain)
picking this:
f 0 = ([], [([], [Throw])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Normal t'
[PROOF STEP]
have "f (Suc 0) = ([],[],(Normal t'))"
[PROOF STATE]
proof (prove)
using this:
f 0 = ([], [([], [Throw])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Normal t'

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Normal t')
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Normal t')

goal (4 subgoals):
 1. \<And>x1. t = Normal x1 \<Longrightarrow> False
 2. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 3. \<And>x3. t = Fault x3 \<Longrightarrow> False
 4. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of "Suc 0"]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f (Suc 0) \<rightarrow> f (Suc (Suc 0))
f (Suc 0) = ([], [], Normal t')
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f (Suc 0) \<rightarrow> f (Suc (Suc 0))
f (Suc 0) = ([], [], Normal t')

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step.cases)
[PROOF STATE]
proof (state)
this:
False

goal (3 subgoals):
 1. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 2. \<And>x3. t = Fault x3 \<Longrightarrow> False
 3. t = Stuck \<Longrightarrow> False
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 2. \<And>x3. t = Fault x3 \<Longrightarrow> False
 3. t = Stuck \<Longrightarrow> False
[PROOF STEP]
case (Abrupt t')
[PROOF STATE]
proof (state)
this:
t = Abrupt t'

goal (3 subgoals):
 1. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 2. \<And>x3. t = Fault x3 \<Longrightarrow> False
 3. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_0 f_step [rule_format, of 0]
[PROOF STATE]
proof (chain)
picking this:
f 0 = ([], [([], [Throw])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Abrupt t'
[PROOF STEP]
have "f (Suc 0) = ([Throw],[],(Normal t'))"
[PROOF STATE]
proof (prove)
using this:
f 0 = ([], [([], [Throw])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Abrupt t'

goal (1 subgoal):
 1. f (Suc 0) = ([Throw], [], Normal t')
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([Throw], [], Normal t')

goal (3 subgoals):
 1. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 2. \<And>x3. t = Fault x3 \<Longrightarrow> False
 3. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of "Suc 0"]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f (Suc 0) \<rightarrow> f (Suc (Suc 0))
f (Suc 0) = ([Throw], [], Normal t')
[PROOF STEP]
have "f (Suc (Suc 0)) = ([],[],(Abrupt t'))"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f (Suc 0) \<rightarrow> f (Suc (Suc 0))
f (Suc 0) = ([Throw], [], Normal t')

goal (1 subgoal):
 1. f (Suc (Suc 0)) = ([], [], Abrupt t')
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc (Suc 0)) = ([], [], Abrupt t')

goal (3 subgoals):
 1. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 2. \<And>x3. t = Fault x3 \<Longrightarrow> False
 3. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of "Suc(Suc 0)"]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f (Suc (Suc 0)) \<rightarrow> f (Suc (Suc (Suc 0)))
f (Suc (Suc 0)) = ([], [], Abrupt t')
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f (Suc (Suc 0)) \<rightarrow> f (Suc (Suc (Suc 0)))
f (Suc (Suc 0)) = ([], [], Abrupt t')

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step.cases)
[PROOF STATE]
proof (state)
this:
False

goal (2 subgoals):
 1. \<And>x3. t = Fault x3 \<Longrightarrow> False
 2. t = Stuck \<Longrightarrow> False
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>x3. t = Fault x3 \<Longrightarrow> False
 2. t = Stuck \<Longrightarrow> False
[PROOF STEP]
case (Fault m)
[PROOF STATE]
proof (state)
this:
t = Fault m

goal (2 subgoals):
 1. \<And>x3. t = Fault x3 \<Longrightarrow> False
 2. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_0 f_step [rule_format, of 0]
[PROOF STATE]
proof (chain)
picking this:
f 0 = ([], [([], [Throw])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Fault m
[PROOF STEP]
have "f (Suc 0) = ([],[],Fault m)"
[PROOF STATE]
proof (prove)
using this:
f 0 = ([], [([], [Throw])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Fault m

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Fault m)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Fault m)

goal (2 subgoals):
 1. \<And>x3. t = Fault x3 \<Longrightarrow> False
 2. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Fault m)
[PROOF STEP]
have "f (Suc (Suc 0)) = ([],[],Fault m)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Fault m)

goal (1 subgoal):
 1. f (Suc (Suc 0)) = ([], [], Fault m)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc (Suc 0)) = ([], [], Fault m)

goal (2 subgoals):
 1. \<And>x3. t = Fault x3 \<Longrightarrow> False
 2. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of "Suc (Suc 0)"]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f (Suc (Suc 0)) \<rightarrow> f (Suc (Suc (Suc 0)))
f (Suc (Suc 0)) = ([], [], Fault m)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f (Suc (Suc 0)) \<rightarrow> f (Suc (Suc (Suc 0)))
f (Suc (Suc 0)) = ([], [], Fault m)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step.cases)
[PROOF STATE]
proof (state)
this:
False

goal (1 subgoal):
 1. t = Stuck \<Longrightarrow> False
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. t = Stuck \<Longrightarrow> False
[PROOF STEP]
case Stuck
[PROOF STATE]
proof (state)
this:
t = Stuck

goal (1 subgoal):
 1. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_0 f_step [rule_format, of 0]
[PROOF STATE]
proof (chain)
picking this:
f 0 = ([], [([], [Throw])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Stuck
[PROOF STEP]
have "f (Suc 0) = ([],[],Stuck)"
[PROOF STATE]
proof (prove)
using this:
f 0 = ([], [([], [Throw])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Stuck

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Stuck)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Stuck)

goal (1 subgoal):
 1. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Stuck)
[PROOF STEP]
have "f (Suc (Suc 0)) = ([],[],Stuck)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Stuck)

goal (1 subgoal):
 1. f (Suc (Suc 0)) = ([], [], Stuck)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc (Suc 0)) = ([], [], Stuck)

goal (1 subgoal):
 1. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of "Suc (Suc 0)"]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f (Suc (Suc 0)) \<rightarrow> f (Suc (Suc (Suc 0)))
f (Suc (Suc 0)) = ([], [], Stuck)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f (Suc (Suc 0)) \<rightarrow> f (Suc (Suc (Suc 0)))
f (Suc (Suc 0)) = ([], [], Stuck)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step.cases)
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s)

goal (7 subgoals):
 1. \<And>p bdy s. \<lbrakk>\<Gamma> p = Some bdy; \<Gamma>\<turnstile>bdy \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [bdy] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 2. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 3. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 4. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 5. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 6. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 7. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Call p], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Call p], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Call p], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([Call p], [], Normal s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([Call p], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Call p], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from bdy f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
\<Gamma> p = Some bdy
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Call p], [], Normal s)
[PROOF STEP]
have "f (Suc 0) =
              ([bdy],[([],[Throw])],Normal s)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma> p = Some bdy
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Call p], [], Normal s)

goal (1 subgoal):
 1. f (Suc 0) = ([bdy], [([], [Throw])], Normal s)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([bdy], [([], [Throw])], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Call p], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)
f (Suc 0) = ([bdy], [([], [Throw])], Normal s)
[PROOF STEP]
have "inf \<Gamma> [bdy] [([],[Throw])] (Normal s)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)
f (Suc 0) = ([bdy], [([], [Throw])], Normal s)

goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s)
[PROOF STEP]
apply (simp add: inf_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i); f (Suc 0) = ([bdy], [([], [Throw])], Normal s)\<rbrakk> \<Longrightarrow> \<exists>f. f 0 = ([bdy], [([], [Throw])], Normal s) \<and> (\<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i))
[PROOF STEP]
apply (rule_tac x="\<lambda>i. f (Suc i)" in exI)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i); f (Suc 0) = ([bdy], [([], [Throw])], Normal s)\<rbrakk> \<Longrightarrow> f (Suc 0) = ([bdy], [([], [Throw])], Normal s) \<and> (\<forall>i. \<Gamma>\<turnstile> f (Suc i) \<rightarrow> f (Suc (Suc i)))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Call p], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with not_inf_bdy
[PROOF STATE]
proof (chain)
picking this:
\<not> AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s)
AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<not> AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s)
AlternativeSmallStep.inf \<Gamma> [bdy] [([], [Throw])] (Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)

goal (6 subgoals):
 1. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 2. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 3. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 4. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 5. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 6. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 2. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 3. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 4. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 5. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 6. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
case (CallUndefined p s)
[PROOF STATE]
proof (state)
this:
\<Gamma> p = None

goal (6 subgoals):
 1. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 2. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 3. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 4. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 5. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 6. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have undef: "\<Gamma> p = None"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Gamma> p = None
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<Gamma> p = None

goal (6 subgoals):
 1. \<And>p s. \<Gamma> p = None \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
 2. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 3. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 4. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 5. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 6. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Call p], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Call p], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Call p], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([Call p], [], Normal s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([Call p], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Call p], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from undef f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
\<Gamma> p = None
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Call p], [], Normal s)
[PROOF STEP]
have "f (Suc 0) = ([],[],Stuck)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma> p = None
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Call p], [], Normal s)

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Stuck)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Stuck)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Call p], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of "Suc 0"]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f (Suc 0) \<rightarrow> f (Suc (Suc 0))
f (Suc 0) = ([], [], Stuck)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f (Suc 0) \<rightarrow> f (Suc (Suc 0))
f (Suc 0) = ([], [], Stuck)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [Call p] [] (Normal s)

goal (5 subgoals):
 1. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 2. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 3. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 4. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 5. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 2. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 3. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 4. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 5. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
case (Stuck c)
[PROOF STATE]
proof (state)
this:

goal (5 subgoals):
 1. \<And>c. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
 2. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 3. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 4. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 5. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Stuck); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Stuck); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Stuck); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([c], [], Stuck)"
[PROOF STATE]
proof (state)
this:
f 0 = ([c], [], Stuck)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Stuck); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([c], [], Stuck)
[PROOF STEP]
have "f (Suc 0) = ([],[],Stuck)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([c], [], Stuck)

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Stuck)
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Stuck)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Stuck); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of "Suc 0"]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f (Suc 0) \<rightarrow> f (Suc (Suc 0))
f (Suc 0) = ([], [], Stuck)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f (Suc 0) \<rightarrow> f (Suc (Suc 0))
f (Suc 0) = ([], [], Stuck)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c] [] Stuck

goal (4 subgoals):
 1. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 2. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 3. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 4. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 2. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 3. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 4. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
case (DynCom c s)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile>c s \<down> Normal s
\<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)

goal (4 subgoals):
 1. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 2. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 3. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 4. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have hyp: "\<not> inf \<Gamma> [(c s)] [] (Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)

goal (4 subgoals):
 1. \<And>c s. \<lbrakk>\<Gamma>\<turnstile>c s \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
 2. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 3. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 4. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([DynCom c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([DynCom c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([DynCom c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([DynCom c], [], Normal s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([DynCom c], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([DynCom c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([DynCom c], [], Normal s)
[PROOF STEP]
have "f (Suc 0) = ([(c s)], [], Normal s)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([DynCom c], [], Normal s)

goal (1 subgoal):
 1. f (Suc 0) = ([c s], [], Normal s)
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([c s], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([DynCom c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)
f (Suc 0) = ([c s], [], Normal s)
[PROOF STEP]
have "inf \<Gamma> [(c s)] [] (Normal s)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)
f (Suc 0) = ([c s], [], Normal s)

goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)
[PROOF STEP]
apply (simp add: inf_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i); f (Suc 0) = ([c s], [], Normal s)\<rbrakk> \<Longrightarrow> \<exists>f. f 0 = ([c s], [], Normal s) \<and> (\<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i))
[PROOF STEP]
apply (rule_tac x="\<lambda>i. f (Suc i)" in exI)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i); f (Suc 0) = ([c s], [], Normal s)\<rbrakk> \<Longrightarrow> f (Suc 0) = ([c s], [], Normal s) \<and> (\<forall>i. \<Gamma>\<turnstile> f (Suc i) \<rightarrow> f (Suc (Suc i)))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([DynCom c], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with hyp
[PROOF STATE]
proof (chain)
picking this:
\<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<not> AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [c s] [] (Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [DynCom c] [] (Normal s)

goal (3 subgoals):
 1. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 2. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 3. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 2. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 3. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
case (Throw s)
[PROOF STATE]
proof (state)
this:

goal (3 subgoals):
 1. \<And>s. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
 2. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 3. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Throw], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Throw], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Throw], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([Throw], [], Normal s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([Throw], [], Normal s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Throw], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Throw], [], Normal s)
[PROOF STEP]
have "f (Suc 0) = ([],[],Abrupt s)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([Throw], [], Normal s)

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Abrupt s)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Abrupt s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([Throw], [], Normal s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step [of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Abrupt s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Abrupt s)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [Throw] [] (Normal s)

goal (2 subgoals):
 1. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 2. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 2. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
case (Abrupt c s)
[PROOF STATE]
proof (state)
this:

goal (2 subgoals):
 1. \<And>c s. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
 2. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)
[PROOF STEP]
proof (rule not_infI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Abrupt s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix f
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Abrupt s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_step: "\<And>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> f ?i \<rightarrow> f (Suc ?i)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Abrupt s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume f_0: "f 0 = ([c], [], Abrupt s)"
[PROOF STATE]
proof (state)
this:
f 0 = ([c], [], Abrupt s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Abrupt s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
from f_step [of 0] f_0
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([c], [], Abrupt s)
[PROOF STEP]
have "f (Suc 0) = ([],[],Abrupt s)"
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
f 0 = ([c], [], Abrupt s)

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Abrupt s)
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Abrupt s)

goal (1 subgoal):
 1. \<And>f. \<lbrakk>f 0 = ([c], [], Abrupt s); \<And>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of "Suc 0"]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f (Suc 0) \<rightarrow> f (Suc (Suc 0))
f (Suc 0) = ([], [], Abrupt s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f (Suc 0) \<rightarrow> f (Suc (Suc 0))
f (Suc 0) = ([], [], Abrupt s)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c] [] (Abrupt s)

goal (1 subgoal):
 1. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
case (Catch c1 s c2)
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile>c1 \<down> Normal s
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
\<forall>s'. \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s')

goal (1 subgoal):
 1. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have hyp_c1: "\<not> inf \<Gamma> [c1] [] (Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)

goal (1 subgoal):
 1. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have hyp_c2: "\<forall>s'. \<Gamma>\<turnstile>\<langle>c1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow>
                   \<Gamma>\<turnstile>c2 \<down> Normal s' \<and> \<not> inf \<Gamma> [c2] [] (Normal s')"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>s'. \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s')
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<forall>s'. \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s')

goal (1 subgoal):
 1. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
have "\<not> inf \<Gamma> [c1] [([],[c2])] (Normal s)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [c1] [([], [c2])] (Normal s)
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [c1] [([], [c2])] (Normal s) \<Longrightarrow> False
[PROOF STEP]
assume "inf \<Gamma> [c1] [([],[c2])] (Normal s)"
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [c1] [([], [c2])] (Normal s)

goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [c1] [([], [c2])] (Normal s) \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
AlternativeSmallStep.inf \<Gamma> [c1] [([], [c2])] (Normal s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
AlternativeSmallStep.inf \<Gamma> [c1] [([], [c2])] (Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
proof (rule infE)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s) \<Longrightarrow> False
 2. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [c2])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume "inf \<Gamma> [c1] [] (Normal s)"
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)

goal (2 subgoals):
 1. AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s) \<Longrightarrow> False
 2. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [c2])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
with hyp_c1
[PROOF STATE]
proof (chain)
picking this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)
AlternativeSmallStep.inf \<Gamma> [c1] [] (Normal s)

goal (1 subgoal):
 1. False
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
False

goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [c2])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [c2])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
fix t
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [c2])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume eval: "\<Gamma>\<turnstile>\<langle>c1,Normal s\<rangle> \<Rightarrow> t"
[PROOF STATE]
proof (state)
this:
\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t

goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [c2])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
assume inf: "inf \<Gamma> [] [([], [c2])] t"
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [] [([], [c2])] t

goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [c2])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
AlternativeSmallStep.inf \<Gamma> [] [([], [c2])] t
[PROOF STEP]
obtain f where
        f_0: "f 0 = ([],[([], [c2] )],t)" and
        f_step: "\<forall>i. \<Gamma>\<turnstile>f i \<rightarrow> f (Suc i)"
[PROOF STATE]
proof (prove)
using this:
AlternativeSmallStep.inf \<Gamma> [] [([], [c2])] t

goal (1 subgoal):
 1. (\<And>f. \<lbrakk>f 0 = ([], [([], [c2])], t); \<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (auto simp add: inf_def)
[PROOF STATE]
proof (state)
this:
f 0 = ([], [([], [c2])], t)
\<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)

goal (1 subgoal):
 1. \<And>t. \<lbrakk>\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t; AlternativeSmallStep.inf \<Gamma> [] [([], [c2])] t\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. False
[PROOF STEP]
proof (cases t)
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>x1. t = Normal x1 \<Longrightarrow> False
 2. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 3. \<And>x3. t = Fault x3 \<Longrightarrow> False
 4. t = Stuck \<Longrightarrow> False
[PROOF STEP]
case (Normal t')
[PROOF STATE]
proof (state)
this:
t = Normal t'

goal (4 subgoals):
 1. \<And>x1. t = Normal x1 \<Longrightarrow> False
 2. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 3. \<And>x3. t = Fault x3 \<Longrightarrow> False
 4. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_0 f_step [rule_format, of 0]
[PROOF STATE]
proof (chain)
picking this:
f 0 = ([], [([], [c2])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Normal t'
[PROOF STEP]
have "f (Suc 0) = ([],[],Normal t')"
[PROOF STATE]
proof (prove)
using this:
f 0 = ([], [([], [c2])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Normal t'

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Normal t')
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Normal t')

goal (4 subgoals):
 1. \<And>x1. t = Normal x1 \<Longrightarrow> False
 2. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 3. \<And>x3. t = Fault x3 \<Longrightarrow> False
 4. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Normal t')
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Normal t')

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal (3 subgoals):
 1. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 2. \<And>x3. t = Fault x3 \<Longrightarrow> False
 3. t = Stuck \<Longrightarrow> False
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 2. \<And>x3. t = Fault x3 \<Longrightarrow> False
 3. t = Stuck \<Longrightarrow> False
[PROOF STEP]
case (Abrupt t')
[PROOF STATE]
proof (state)
this:
t = Abrupt t'

goal (3 subgoals):
 1. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 2. \<And>x3. t = Fault x3 \<Longrightarrow> False
 3. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_0 f_step [rule_format, of 0]
[PROOF STATE]
proof (chain)
picking this:
f 0 = ([], [([], [c2])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Abrupt t'
[PROOF STEP]
have "f (Suc 0) = ([c2],[],Normal t')"
[PROOF STATE]
proof (prove)
using this:
f 0 = ([], [([], [c2])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Abrupt t'

goal (1 subgoal):
 1. f (Suc 0) = ([c2], [], Normal t')
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([c2], [], Normal t')

goal (3 subgoals):
 1. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 2. \<And>x3. t = Fault x3 \<Longrightarrow> False
 3. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_step eval Abrupt
[PROOF STATE]
proof (chain)
picking this:
\<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)
\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t
t = Abrupt t'
f (Suc 0) = ([c2], [], Normal t')
[PROOF STEP]
have "inf \<Gamma> [c2] [] (Normal t')"
[PROOF STATE]
proof (prove)
using this:
\<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i)
\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t
t = Abrupt t'
f (Suc 0) = ([c2], [], Normal t')

goal (1 subgoal):
 1. AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal t')
[PROOF STEP]
apply (simp add: inf_def)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i); \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> Abrupt t'; t = Abrupt t'; f (Suc 0) = ([c2], [], Normal t')\<rbrakk> \<Longrightarrow> \<exists>f. f 0 = ([c2], [], Normal t') \<and> (\<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i))
[PROOF STEP]
apply (rule_tac x="\<lambda>i. f (Suc i)" in exI)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<forall>i. \<Gamma>\<turnstile> f i \<rightarrow> f (Suc i); \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> Abrupt t'; t = Abrupt t'; f (Suc 0) = ([c2], [], Normal t')\<rbrakk> \<Longrightarrow> f (Suc 0) = ([c2], [], Normal t') \<and> (\<forall>i. \<Gamma>\<turnstile> f (Suc i) \<rightarrow> f (Suc (Suc i)))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal t')

goal (3 subgoals):
 1. \<And>x2. t = Abrupt x2 \<Longrightarrow> False
 2. \<And>x3. t = Fault x3 \<Longrightarrow> False
 3. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with eval hyp_c2 Abrupt
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t
\<forall>s'. \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s')
t = Abrupt t'
AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal t')
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> t
\<forall>s'. \<Gamma>\<turnstile> \<langle>c1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal s')
t = Abrupt t'
AlternativeSmallStep.inf \<Gamma> [c2] [] (Normal t')

goal (1 subgoal):
 1. False
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
False

goal (2 subgoals):
 1. \<And>x3. t = Fault x3 \<Longrightarrow> False
 2. t = Stuck \<Longrightarrow> False
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>x3. t = Fault x3 \<Longrightarrow> False
 2. t = Stuck \<Longrightarrow> False
[PROOF STEP]
case (Fault m)
[PROOF STATE]
proof (state)
this:
t = Fault m

goal (2 subgoals):
 1. \<And>x3. t = Fault x3 \<Longrightarrow> False
 2. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_0 f_step [rule_format, of 0]
[PROOF STATE]
proof (chain)
picking this:
f 0 = ([], [([], [c2])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Fault m
[PROOF STEP]
have "f (Suc 0) = ([],[],Fault m)"
[PROOF STATE]
proof (prove)
using this:
f 0 = ([], [([], [c2])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Fault m

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Fault m)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Fault m)

goal (2 subgoals):
 1. \<And>x3. t = Fault x3 \<Longrightarrow> False
 2. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Fault m)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Fault m)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal (1 subgoal):
 1. t = Stuck \<Longrightarrow> False
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. t = Stuck \<Longrightarrow> False
[PROOF STEP]
case Stuck
[PROOF STATE]
proof (state)
this:
t = Stuck

goal (1 subgoal):
 1. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_0 f_step [rule_format, of 0]
[PROOF STATE]
proof (chain)
picking this:
f 0 = ([], [([], [c2])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Stuck
[PROOF STEP]
have "f (Suc 0) = ([],[],Stuck)"
[PROOF STATE]
proof (prove)
using this:
f 0 = ([], [([], [c2])], t)
\<Gamma>\<turnstile> f 0 \<rightarrow> f (Suc 0)
t = Stuck

goal (1 subgoal):
 1. f (Suc 0) = ([], [], Stuck)
[PROOF STEP]
by (auto elim: step_Normal_elim_cases)
[PROOF STATE]
proof (state)
this:
f (Suc 0) = ([], [], Stuck)

goal (1 subgoal):
 1. t = Stuck \<Longrightarrow> False
[PROOF STEP]
with f_step [rule_format, of 1]
[PROOF STATE]
proof (chain)
picking this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Stuck)
[PROOF STEP]
show False
[PROOF STATE]
proof (prove)
using this:
\<Gamma>\<turnstile> f 1 \<rightarrow> f (Suc 1)
f (Suc 0) = ([], [], Stuck)

goal (1 subgoal):
 1. False
[PROOF STEP]
by (auto elim: step_elim_cases)
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
False

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [([], [c2])] (Normal s)

goal (1 subgoal):
 1. \<And>c\<^sub>1 s c\<^sub>2. \<lbrakk>\<Gamma>\<turnstile>c\<^sub>1 \<down> Normal s; \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>1] [] (Normal s); \<forall>s'. \<Gamma>\<turnstile> \<langle>c\<^sub>1,Normal s\<rangle> \<Rightarrow> Abrupt s' \<longrightarrow> \<Gamma>\<turnstile>c\<^sub>2 \<down> Normal s' \<and> \<not> AlternativeSmallStep.inf \<Gamma> [c\<^sub>2] [] (Normal s')\<rbrakk> \<Longrightarrow> \<not> AlternativeSmallStep.inf \<Gamma> [Catch c\<^sub>1 c\<^sub>2] [] (Normal s)
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<not> AlternativeSmallStep.inf \<Gamma> [c1] [([], [c2])] (Normal s)

goal (1 subgoal):
 1. \<not> AlternativeSmallStep.inf \<Gamma> [Catch c1 c2] [] (Normal s)
[PROOF STEP]
by (simp add: inf_Catch)
[PROOF STATE]
proof (state)
this:
\<not> AlternativeSmallStep.inf \<Gamma> [Catch c1 c2] [] (Normal s)

goal:
No subgoals!
[PROOF STEP]
qed