[STATEMENT]
lemma is_process_REP_Mp'  :
     "is_process ({(tr,ref). tr=[] \<and>  ref \<inter> (ev ` A) = {}} \<union>
                  {(tr,ref). tr \<noteq> [] \<and> hd tr \<in> (ev ` A) \<and>
                        (\<exists> a. ev a = (hd tr) \<and> (tl tr,ref) \<in> F(P a))},
                  {d. d \<noteq>  [] \<and>  hd d \<in> (ev ` A) \<and>
                        (\<exists> a. ev a = hd d  \<and> tl d \<in> D(P a))})"
 (is "is_process(?f, ?d)")
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. is_process ({(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}, {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))})
[PROOF STEP]
proof  (simp only:is_process_def FAILURES_def DIVERGENCES_def
                  Product_Type.fst_conv Product_Type.snd_conv,
        intro conjI allI impI,goal_cases)
[PROOF STATE]
proof (state)
goal (9 subgoals):
 1. ([], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> front_tickFree s
 3. \<And>s t. (s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 6. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 7. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 8. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 9. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
case 1
[PROOF STATE]
proof (state)
this:

goal (9 subgoals):
 1. ([], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> front_tickFree s
 3. \<And>s t. (s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 6. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 7. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 8. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 9. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
show "([],{}) \<in> ?f"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ([], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
[PROOF STEP]
by(simp )
[PROOF STATE]
proof (state)
this:
([], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (8 subgoals):
 1. \<And>s X. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> front_tickFree s
 2. \<And>s t. (s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 6. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 7. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 8. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (8 subgoals):
 1. \<And>s X. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> front_tickFree s
 2. \<And>s t. (s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 6. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 7. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 8. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
case (2 s X)
[PROOF STATE]
proof (state)
this:
(s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (8 subgoals):
 1. \<And>s X. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> front_tickFree s
 2. \<And>s t. (s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 6. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 7. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 8. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
assume H : "(s, X) \<in> ?f"
[PROOF STATE]
proof (state)
this:
(s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (8 subgoals):
 1. \<And>s X. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> front_tickFree s
 2. \<And>s t. (s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 6. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 7. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 8. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
have       "front_tickFree s"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. front_tickFree s
[PROOF STEP]
apply(insert H, auto simp:  front_tickFree_def tickFree_def
                           dest!:list_nonMt_append)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>aa ta x. \<lbrakk>tick \<in> set ta; s = ta @ [aa]; hd (ta @ [aa]) = ev x; x \<in> A; (tl (ta @ [aa]), X) \<in> F (P x)\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
apply(rename_tac aa ta x, case_tac "ta", auto simp: front_tickFree_charn
                           dest! : is_processT2[rule_format])
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>aa x list. \<lbrakk>tick \<in> set list; s = ev x # list @ [aa]; x \<in> A; tickFree list\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
apply(simp add: tickFree_def)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
front_tickFree s

goal (8 subgoals):
 1. \<And>s X. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> front_tickFree s
 2. \<And>s t. (s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 6. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 7. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 8. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
front_tickFree s
[PROOF STEP]
show "front_tickFree s"
[PROOF STATE]
proof (prove)
using this:
front_tickFree s

goal (1 subgoal):
 1. front_tickFree s
[PROOF STEP]
by(auto)
[PROOF STATE]
proof (state)
this:
front_tickFree s

goal (7 subgoals):
 1. \<And>s t. (s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 6. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 7. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (7 subgoals):
 1. \<And>s t. (s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 6. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 7. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
case (3 s t)
[PROOF STATE]
proof (state)
this:
(s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (7 subgoals):
 1. \<And>s t. (s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 6. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 7. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
assume H : "(s @ t, {}) \<in> ?f"
[PROOF STATE]
proof (state)
this:
(s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (7 subgoals):
 1. \<And>s t. (s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 6. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 7. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
show "(s, {}) \<in> ?f"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
[PROOF STEP]
using H
[PROOF STATE]
proof (prove)
using this:
(s @ t, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (1 subgoal):
 1. (s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
[PROOF STEP]
by(auto elim: is_processT3[rule_format])
[PROOF STATE]
proof (state)
this:
(s, {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (6 subgoals):
 1. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 5. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 6. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 5. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 6. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
case (4 s X Y)
[PROOF STATE]
proof (state)
this:
(s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y

goal (6 subgoals):
 1. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 5. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 6. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
assume H1: "(s, Y) \<in> ?f \<and> X \<subseteq> Y"
[PROOF STATE]
proof (state)
this:
(s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y

goal (6 subgoals):
 1. \<And>s X Y. (s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 5. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 6. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
(s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y
[PROOF STEP]
show "(s, X) \<in> ?f"
[PROOF STATE]
proof (prove)
using this:
(s, Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> X \<subseteq> Y

goal (1 subgoal):
 1. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
[PROOF STEP]
by(auto intro: is_processT4[rule_format])
[PROOF STATE]
proof (state)
this:
(s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (5 subgoals):
 1. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 4. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 4. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
case (5 s X Y)
[PROOF STATE]
proof (state)
this:
(s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))})

goal (5 subgoals):
 1. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 4. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
assume  "(s, X) \<in> ?f \<and> (\<forall> c. c\<in>Y \<longrightarrow> (s @ [c], {}) \<notin> ?f)"
[PROOF STATE]
proof (state)
this:
(s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))})

goal (5 subgoals):
 1. \<And>s X Y. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}) \<Longrightarrow> (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 4. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 5. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
(s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))})
[PROOF STEP]
show "(s, X \<union> Y) \<in> ?f"
[PROOF STATE]
proof (prove)
using this:
(s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<and> (\<forall>c. c \<in> Y \<longrightarrow> (s @ [c], {}) \<notin> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))})

goal (1 subgoal):
 1. (s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
[PROOF STEP]
by(auto intro!: is_processT1 is_processT5[rule_format])
[PROOF STATE]
proof (state)
this:
(s, X \<union> Y) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (4 subgoals):
 1. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 3. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 3. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
case (6 s X)
[PROOF STATE]
proof (state)
this:
(s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (4 subgoals):
 1. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 3. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
assume  "(s @ [tick], {}) \<in> ?f"
[PROOF STATE]
proof (state)
this:
(s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (4 subgoals):
 1. \<And>s X. (s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))} \<Longrightarrow> (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 3. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 4. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
(s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
[PROOF STEP]
show "(s, X - {tick}) \<in> ?f"
[PROOF STATE]
proof (prove)
using this:
(s @ [tick], {}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (1 subgoal):
 1. (s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
[PROOF STEP]
by(cases s, auto dest!: is_processT6[rule_format])
[PROOF STATE]
proof (state)
this:
(s, X - {tick}) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (3 subgoals):
 1. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 2. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 2. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
case (7 s t)
[PROOF STATE]
proof (state)
this:
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t

goal (3 subgoals):
 1. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 2. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
assume H1 : "s \<in>  ?d \<and> tickFree s \<and> front_tickFree t"
[PROOF STATE]
proof (state)
this:
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t

goal (3 subgoals):
 1. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 2. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
have 7:     "s @ t \<in> ?d"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
using H1
[PROOF STATE]
proof (prove)
using this:
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t

goal (1 subgoal):
 1. s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
by(auto intro!: is_processT7_S, cases s, simp_all)
[PROOF STATE]
proof (state)
this:
s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal (3 subgoals):
 1. \<And>s t. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t \<Longrightarrow> s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
 2. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 3. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
show "s @ t \<in> ?d"
[PROOF STATE]
proof (prove)
using this:
s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal (1 subgoal):
 1. s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
using H1
[PROOF STATE]
proof (prove)
using this:
s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<and> tickFree s \<and> front_tickFree t

goal (1 subgoal):
 1. s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
by(auto)
[PROOF STATE]
proof (state)
this:
s @ t \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal (2 subgoals):
 1. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
case (8 s X)
[PROOF STATE]
proof (state)
this:
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal (2 subgoals):
 1. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
assume H : "s \<in> ?d"
[PROOF STATE]
proof (state)
this:
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal (2 subgoals):
 1. \<And>s X. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
 2. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
show "(s, X) \<in> ?f"
[PROOF STATE]
proof (prove)
using this:
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal (1 subgoal):
 1. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
[PROOF STEP]
using H
[PROOF STATE]
proof (prove)
using this:
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal (1 subgoal):
 1. (s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}
[PROOF STEP]
by(auto simp: is_processT8_S)
[PROOF STATE]
proof (state)
this:
(s, X) \<in> {(tr, ref). tr = [] \<and> ref \<inter> ev ` A = {}} \<union> {(tr, ref). tr \<noteq> [] \<and> hd tr \<in> ev ` A \<and> (\<exists>a. ev a = hd tr \<and> (tl tr, ref) \<in> F (P a))}

goal (1 subgoal):
 1. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
case (9 s)
[PROOF STATE]
proof (state)
this:
s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal (1 subgoal):
 1. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
assume H: "s @ [tick] \<in> ?d"
[PROOF STATE]
proof (state)
this:
s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal (1 subgoal):
 1. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
have 9:   "s \<in> ?d"
[PROOF STATE]
proof (prove)
using this:
s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal (1 subgoal):
 1. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
apply(auto)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<And>x. \<lbrakk>hd (s @ [tick]) = ev x; x \<in> A; tl (s @ [tick]) \<in> D (P x)\<rbrakk> \<Longrightarrow> hd s \<in> ev ` A
 2. \<And>x. \<lbrakk>hd (s @ [tick]) = ev x; x \<in> A; tl (s @ [tick]) \<in> D (P x)\<rbrakk> \<Longrightarrow> \<exists>a. ev a = hd s \<and> tl s \<in> D (P a)
[PROOF STEP]
apply(cases s, simp_all)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>x. \<lbrakk>hd (s @ [tick]) = ev x; x \<in> A; tl (s @ [tick]) \<in> D (P x)\<rbrakk> \<Longrightarrow> \<exists>a. ev a = hd s \<and> tl s \<in> D (P a)
[PROOF STEP]
apply(cases s, auto intro: is_processT9[rule_format])
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal (1 subgoal):
 1. \<And>s. s @ [tick] \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))} \<Longrightarrow> s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
show "s \<in> ?d"
[PROOF STATE]
proof (prove)
using this:
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal (1 subgoal):
 1. s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}
[PROOF STEP]
by(auto)
[PROOF STATE]
proof (state)
this:
s \<in> {d. d \<noteq> [] \<and> hd d \<in> ev ` A \<and> (\<exists>a. ev a = hd d \<and> tl d \<in> D (P a))}

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma B_authenticates_and_keydist_to_A:
     "\<lbrakk>Crypt K \<lbrace>Nonce NB, Nonce NB\<rbrace> \<in> parts (spies evs);
       Crypt (shrK B) \<lbrace>Key K, Agent A\<rbrace> \<in> parts (spies evs);
       Key K \<notin> analz (spies evs);
       A \<notin> bad;  B \<notin> bad;  evs \<in> ns_shared\<rbrakk>
   \<Longrightarrow> A Issues B with (Crypt K \<lbrace>Nonce NB, Nonce NB\<rbrace>) on evs"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>Crypt K \<lbrace>Nonce NB, Nonce NB\<rbrace> \<in> parts (knows Spy evs); Crypt (shrK B) \<lbrace>Key K, Agent A\<rbrace> \<in> parts (knows Spy evs); Key K \<notin> analz (knows Spy evs); A \<notin> bad; B \<notin> bad; evs \<in> ns_shared\<rbrakk> \<Longrightarrow> A Issues B with Crypt K \<lbrace>Nonce NB, Nonce NB\<rbrace> on evs
[PROOF STEP]
by (blast intro: A_Issues_B B_trusts_NS5_lemma dest: B_trusts_NS3)