[STATEMENT]
lemma compT_LT_prefix:
  "\<lbrakk> \<lfloor>(ST,LT)\<rfloor> \<in> set(compT E A ST0 e); \<B> e (size E) \<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST,LT)\<rfloor> \<le>' ty\<^sub>i' ST E A"
  and compTs_LT_prefix:
  "\<lbrakk> \<lfloor>(ST,LT)\<rfloor> \<in> set(compTs E A ST0 es); \<B>s es (size E) \<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST,LT)\<rfloor> \<le>' ty\<^sub>i' ST E A"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST0 e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A) &&& (\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST0 es); \<B>s es (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A)
[PROOF STEP]
proof(induct E A ST0 e and E A ST0 es rule: compT_compTs_induct)
[PROOF STATE]
proof (state)
goal (26 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa e1 bop e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1 \<guillemotleft>bop\<guillemotright> e2)); \<B> (e1 \<guillemotleft>bop\<guillemotright> e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 26 subgoals...
[PROOF STEP]
case FAss
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e1_) (ty E_ e1_ # ST_) e2_); \<B> e2_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e1_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (e1_\<bullet>F_{D_} := e2_))
\<B> (e1_\<bullet>F_{D_} := e2_) (length E_)

goal (26 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa e1 bop e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1 \<guillemotleft>bop\<guillemotright> e2)); \<B> (e1 \<guillemotleft>bop\<guillemotright> e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 26 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e1_) (ty E_ e1_ # ST_) e2_); \<B> e2_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e1_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (e1_\<bullet>F_{D_} := e2_))
\<B> (e1_\<bullet>F_{D_} := e2_) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(fastforce simp:hyperset_defs elim!:sup_state_opt_trans)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (25 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa e1 bop e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1 \<guillemotleft>bop\<guillemotright> e2)); \<B> (e1 \<guillemotleft>bop\<guillemotright> e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 25 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (25 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa e1 bop e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1 \<guillemotleft>bop\<guillemotright> e2)); \<B> (e1 \<guillemotleft>bop\<guillemotright> e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 25 subgoals...
[PROOF STEP]
case BinOp
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e1_) (ty E_ e1_ # ST_) e2_); \<B> e2_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e1_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (e1_ \<guillemotleft>bop_\<guillemotright> e2_))
\<B> (e1_ \<guillemotleft>bop_\<guillemotright> e2_) (length E_)

goal (25 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa e1 bop e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1 \<guillemotleft>bop\<guillemotright> e2)); \<B> (e1 \<guillemotleft>bop\<guillemotright> e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 25 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e1_) (ty E_ e1_ # ST_) e2_); \<B> e2_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e1_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (e1_ \<guillemotleft>bop_\<guillemotright> e2_))
\<B> (e1_ \<guillemotleft>bop_\<guillemotright> e2_) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(fastforce simp:hyperset_defs elim!:sup_state_opt_trans split:bop.splits)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (24 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 24 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (24 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 24 subgoals...
[PROOF STEP]
case Seq
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e1_) ST_ e2_); \<B> e2_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e1_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (e1_;; e2_))
\<B> (e1_;; e2_) (length E_)

goal (24 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 24 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e1_) ST_ e2_); \<B> e2_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e1_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (e1_;; e2_))
\<B> (e1_;; e2_) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(fastforce simp:hyperset_defs elim!:sup_state_opt_trans)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (23 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 23 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (23 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 23 subgoals...
[PROOF STEP]
case While
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e_); \<B> e_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e_) ST_ c_); \<B> c_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (while (e_) c_))
\<B> (while (e_) c_) (length E_)

goal (23 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 23 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e_); \<B> e_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e_) ST_ c_); \<B> c_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (while (e_) c_))
\<B> (while (e_) c_) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(fastforce simp:hyperset_defs elim!:sup_state_opt_trans)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (22 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 22 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (22 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 22 subgoals...
[PROOF STEP]
case Cond
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e_); \<B> e_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e_) ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e_)
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e_) ST_ e2_); \<B> e2_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (if (e_) e1_ else e2_))
\<B> (if (e_) e1_ else e2_) (length E_)

goal (22 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 22 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e_); \<B> e_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e_) ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e_)
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e_) ST_ e2_); \<B> e2_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (if (e_) e1_ else e2_))
\<B> (if (e_) e1_ else e2_) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(fastforce simp:hyperset_defs elim!:sup_state_opt_trans)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (21 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 21 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (21 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 21 subgoals...
[PROOF STEP]
case BlockNone
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E_ @ [T_]) (A_ \<ominus> i_) ST_ e_); \<B> e_ (length (E_ @ [T_]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E_ @ [T_]) (A_ \<ominus> i_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ {i_:T_=None; e_})
\<B> {i_:T_=None; e_} (length E_)

goal (21 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 21 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E_ @ [T_]) (A_ \<ominus> i_) ST_ e_); \<B> e_ (length (E_ @ [T_]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E_ @ [T_]) (A_ \<ominus> i_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ {i_:T_=None; e_})
\<B> {i_:T_=None; e_} (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(auto)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (20 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 20 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (20 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 20 subgoals...
[PROOF STEP]
case BlockSome
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E_ @ [T_]) (A_ \<squnion> \<lfloor>{i_}\<rfloor>) ST_ e_); \<B> e_ (length (E_ @ [T_]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E_ @ [T_]) (A_ \<squnion> \<lfloor>{i_}\<rfloor>)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ {i_:T_=\<lfloor>v_\<rfloor>; e_})
\<B> {i_:T_=\<lfloor>v_\<rfloor>; e_} (length E_)

goal (20 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 20 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E_ @ [T_]) (A_ \<squnion> \<lfloor>{i_}\<rfloor>) ST_ e_); \<B> e_ (length (E_ @ [T_]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E_ @ [T_]) (A_ \<squnion> \<lfloor>{i_}\<rfloor>)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ {i_:T_=\<lfloor>v_\<rfloor>; e_})
\<B> {i_:T_=\<lfloor>v_\<rfloor>; e_} (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(clarsimp simp only: ty\<^sub>i'_def)(fastforce intro: ty\<^sub>i'_incr simp add: hyperset_defs elim: sup_state_opt_trans)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (19 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 19 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (19 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 19 subgoals...
[PROOF STEP]
case Call
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e_); \<B> e_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E_ (A_ \<squnion> \<A> e_) (ty E_ e_ # ST_) es_); \<B>s es_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (e_\<bullet>M_(es_)))
\<B> (e_\<bullet>M_(es_)) (length E_)

goal (19 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 19 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e_); \<B> e_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E_ (A_ \<squnion> \<A> e_) (ty E_ e_ # ST_) es_); \<B>s es_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (e_\<bullet>M_(es_)))
\<B> (e_\<bullet>M_(es_)) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(fastforce simp:hyperset_defs elim!:sup_state_opt_trans)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (18 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 18 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (18 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 18 subgoals...
[PROOF STEP]
case Cons
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e_); \<B> e_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E_ (A_ \<squnion> \<A> e_) (ty E_ e_ # ST_) es_); \<B>s es_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E_ A_ ST_ (e_ # es_))
\<B>s (e_ # es_) (length E_)

goal (18 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 18 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e_); \<B> e_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E_ (A_ \<squnion> \<A> e_) (ty E_ e_ # ST_) es_); \<B>s es_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E_ A_ ST_ (e_ # es_))
\<B>s (e_ # es_) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(fastforce simp:hyperset_defs elim!:sup_state_opt_trans)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (17 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 17 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (17 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 17 subgoals...
[PROOF STEP]
case TryCatch
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E_ @ [Class C_]) (A_ \<squnion> \<lfloor>{i_}\<rfloor>) ST_ e2_); \<B> e2_ (length (E_ @ [Class C_]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E_ @ [Class C_]) (A_ \<squnion> \<lfloor>{i_}\<rfloor>)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (try e1_ catch(C_ i_) e2_))
\<B> (try e1_ catch(C_ i_) e2_) (length E_)

goal (17 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 17 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E_ @ [Class C_]) (A_ \<squnion> \<lfloor>{i_}\<rfloor>) ST_ e2_); \<B> e2_ (length (E_ @ [Class C_]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E_ @ [Class C_]) (A_ \<squnion> \<lfloor>{i_}\<rfloor>)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (try e1_ catch(C_ i_) e2_))
\<B> (try e1_ catch(C_ i_) e2_) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(fastforce simp:hyperset_defs intro!: ty\<^sub>i'_incr elim!:sup_state_opt_trans)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (16 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 16 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (16 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 16 subgoals...
[PROOF STEP]
case NewArray
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e_); \<B> e_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (newA T_\<lfloor>e_\<rceil>))
\<B> (newA T_\<lfloor>e_\<rceil>) (length E_)

goal (16 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa T e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (newA T\<lfloor>e\<rceil>)); \<B> (newA T\<lfloor>e\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 16 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e_); \<B> e_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (newA T_\<lfloor>e_\<rceil>))
\<B> (newA T_\<lfloor>e_\<rceil>) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(auto simp add: hyperset_defs)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (15 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 15 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (15 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 15 subgoals...
[PROOF STEP]
case AAcc
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ a_); \<B> a_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> a_) (ty E_ a_ # ST_) i_); \<B> i_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> a_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (a_\<lfloor>i_\<rceil>))
\<B> (a_\<lfloor>i_\<rceil>) (length E_)

goal (15 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa a i. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil>)); \<B> (a\<lfloor>i\<rceil>) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 15 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ a_); \<B> a_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> a_) (ty E_ a_ # ST_) i_); \<B> i_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> a_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (a_\<lfloor>i_\<rceil>))
\<B> (a_\<lfloor>i_\<rceil>) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(fastforce simp:hyperset_defs elim!:sup_state_opt_trans)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (14 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa e1 D F e2 e3. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1 \<squnion> \<A> e2) (ty E e2 # ty E e1 # STa) e3); \<B> e3 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1 \<squnion> \<A> e2); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3))); \<B> (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3)) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 14 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (14 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa e1 D F e2 e3. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1 \<squnion> \<A> e2) (ty E e2 # ty E e1 # STa) e3); \<B> e3 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1 \<squnion> \<A> e2); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3))); \<B> (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3)) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 14 subgoals...
[PROOF STEP]
case AAss
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ a_); \<B> a_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> a_) (ty E_ a_ # ST_) i_); \<B> i_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> a_)
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> a_ \<squnion> \<A> i_) (ty E_ i_ # ty E_ a_ # ST_) e_); \<B> e_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> a_ \<squnion> \<A> i_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (a_\<lfloor>i_\<rceil> := e_))
\<B> (a_\<lfloor>i_\<rceil> := e_) (length E_)

goal (14 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa a i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a) (ty E a # STa) i); \<B> i (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> a \<squnion> \<A> i) (ty E i # ty E a # STa) e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> a \<squnion> \<A> i); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<lfloor>i\<rceil> := e)); \<B> (a\<lfloor>i\<rceil> := e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa e1 D F e2 e3. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1 \<squnion> \<A> e2) (ty E e2 # ty E e1 # STa) e3); \<B> e3 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1 \<squnion> \<A> e2); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3))); \<B> (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3)) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 14 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ a_); \<B> a_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> a_) (ty E_ a_ # ST_) i_); \<B> i_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> a_)
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> a_ \<squnion> \<A> i_) (ty E_ i_ # ty E_ a_ # ST_) e_); \<B> e_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> a_ \<squnion> \<A> i_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (a_\<lfloor>i_\<rceil> := e_))
\<B> (a_\<lfloor>i_\<rceil> := e_) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(auto simp:hyperset_defs Un_ac elim!:sup_state_opt_trans)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (13 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa e1 D F e2 e3. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1 \<squnion> \<A> e2) (ty E e2 # ty E e1 # STa) e3); \<B> e3 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1 \<squnion> \<A> e2); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3))); \<B> (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3)) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa i e1 e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>) STa e2); \<B> e2 (length (E @ [Class Object]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (sync\<^bsub>i\<^esub> (e1) e2)); \<B> (sync\<^bsub>i\<^esub> (e1) e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 13 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (13 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa e1 D F e2 e3. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1 \<squnion> \<A> e2) (ty E e2 # ty E e1 # STa) e3); \<B> e3 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1 \<squnion> \<A> e2); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3))); \<B> (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3)) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa i e1 e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>) STa e2); \<B> e2 (length (E @ [Class Object]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (sync\<^bsub>i\<^esub> (e1) e2)); \<B> (sync\<^bsub>i\<^esub> (e1) e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 13 subgoals...
[PROOF STEP]
case ALen
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ a_); \<B> a_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (a_\<bullet>length))
\<B> (a_\<bullet>length) (length E_)

goal (13 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa a. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa a); \<B> a (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (a\<bullet>length)); \<B> (a\<bullet>length) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa e1 D F e2 e3. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1 \<squnion> \<A> e2) (ty E e2 # ty E e1 # STa) e3); \<B> e3 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1 \<squnion> \<A> e2); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3))); \<B> (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3)) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa i e1 e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>) STa e2); \<B> e2 (length (E @ [Class Object]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (sync\<^bsub>i\<^esub> (e1) e2)); \<B> (sync\<^bsub>i\<^esub> (e1) e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 13 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ a_); \<B> a_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (a_\<bullet>length))
\<B> (a_\<bullet>length) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(auto simp add: hyperset_defs)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (12 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa e1 D F e2 e3. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1 \<squnion> \<A> e2) (ty E e2 # ty E e1 # STa) e3); \<B> e3 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1 \<squnion> \<A> e2); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3))); \<B> (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3)) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa i e1 e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>) STa e2); \<B> e2 (length (E @ [Class Object]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (sync\<^bsub>i\<^esub> (e1) e2)); \<B> (sync\<^bsub>i\<^esub> (e1) e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa i a e. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (insync\<^bsub>i\<^esub> (a) e)); \<B> (insync\<^bsub>i\<^esub> (a) e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 12 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (12 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa e1 D F e2 e3. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1 \<squnion> \<A> e2) (ty E e2 # ty E e1 # STa) e3); \<B> e3 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1 \<squnion> \<A> e2); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3))); \<B> (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3)) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa i e1 e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>) STa e2); \<B> e2 (length (E @ [Class Object]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (sync\<^bsub>i\<^esub> (e1) e2)); \<B> (sync\<^bsub>i\<^esub> (e1) e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa i a e. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (insync\<^bsub>i\<^esub> (a) e)); \<B> (insync\<^bsub>i\<^esub> (a) e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 12 subgoals...
[PROOF STEP]
case CompareAndSwap
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e1_) (ty E_ e1_ # ST_) e2_); \<B> e2_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e1_)
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e1_ \<squnion> \<A> e2_) (ty E_ e2_ # ty E_ e1_ # ST_) e3_); \<B> e3_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e1_ \<squnion> \<A> e2_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (e1_\<bullet>compareAndSwap(D_\<bullet>F_, e2_, e3_)))
\<B> (e1_\<bullet>compareAndSwap(D_\<bullet>F_, e2_, e3_)) (length E_)

goal (12 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa e1 D F e2 e3. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1) (ty E e1 # STa) e2); \<B> e2 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1); \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E (A \<squnion> \<A> e1 \<squnion> \<A> e2) (ty E e2 # ty E e1 # STa) e3); \<B> e3 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E (A \<squnion> \<A> e1 \<squnion> \<A> e2); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3))); \<B> (e1\<bullet>compareAndSwap(D\<bullet>F, e2, e3)) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa i e1 e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>) STa e2); \<B> e2 (length (E @ [Class Object]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (sync\<^bsub>i\<^esub> (e1) e2)); \<B> (sync\<^bsub>i\<^esub> (e1) e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa i a e. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (insync\<^bsub>i\<^esub> (a) e)); \<B> (insync\<^bsub>i\<^esub> (a) e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 12 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e1_) (ty E_ e1_ # ST_) e2_); \<B> e2_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e1_)
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ (A_ \<squnion> \<A> e1_ \<squnion> \<A> e2_) (ty E_ e2_ # ty E_ e1_ # ST_) e3_); \<B> e3_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ (A_ \<squnion> \<A> e1_ \<squnion> \<A> e2_)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (e1_\<bullet>compareAndSwap(D_\<bullet>F_, e2_, e3_)))
\<B> (e1_\<bullet>compareAndSwap(D_\<bullet>F_, e2_, e3_)) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(auto simp: hyperset_defs Un_ac elim!:sup_state_opt_trans)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (11 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa i e1 e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>) STa e2); \<B> e2 (length (E @ [Class Object]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (sync\<^bsub>i\<^esub> (e1) e2)); \<B> (sync\<^bsub>i\<^esub> (e1) e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa i a e. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (insync\<^bsub>i\<^esub> (a) e)); \<B> (insync\<^bsub>i\<^esub> (a) e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (throw e)); \<B> (throw e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 11 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (11 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa i e1 e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>) STa e2); \<B> e2 (length (E @ [Class Object]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (sync\<^bsub>i\<^esub> (e1) e2)); \<B> (sync\<^bsub>i\<^esub> (e1) e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa i a e. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (insync\<^bsub>i\<^esub> (a) e)); \<B> (insync\<^bsub>i\<^esub> (a) e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (throw e)); \<B> (throw e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 11 subgoals...
[PROOF STEP]
case Synchronized
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E_ @ [Class Object]) (A_ \<squnion> \<A> e1_ \<squnion> \<lfloor>{i_}\<rfloor>) ST_ e2_); \<B> e2_ (length (E_ @ [Class Object]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E_ @ [Class Object]) (A_ \<squnion> \<A> e1_ \<squnion> \<lfloor>{i_}\<rfloor>)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (sync\<^bsub>i_\<^esub> (e1_) e2_))
\<B> (sync\<^bsub>i_\<^esub> (e1_) e2_) (length E_)

goal (11 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa i e1 e2. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e1); \<B> e1 (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>) STa e2); \<B> e2 (length (E @ [Class Object]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E @ [Class Object]) (A \<squnion> \<A> e1 \<squnion> \<lfloor>{i}\<rfloor>); \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (sync\<^bsub>i\<^esub> (e1) e2)); \<B> (sync\<^bsub>i\<^esub> (e1) e2) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa i a e. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (insync\<^bsub>i\<^esub> (a) e)); \<B> (insync\<^bsub>i\<^esub> (a) e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (throw e)); \<B> (throw e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
A total of 11 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ e1_); \<B> e1_ (length E_)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT (E_ @ [Class Object]) (A_ \<squnion> \<A> e1_ \<squnion> \<lfloor>{i_}\<rfloor>) ST_ e2_); \<B> e2_ (length (E_ @ [Class Object]))\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST (E_ @ [Class Object]) (A_ \<squnion> \<A> e1_ \<squnion> \<lfloor>{i_}\<rfloor>)
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E_ A_ ST_ (sync\<^bsub>i_\<^esub> (e1_) e2_))
\<B> (sync\<^bsub>i_\<^esub> (e1_) e2_) (length E_)

goal (1 subgoal):
 1. P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_
[PROOF STEP]
by(fastforce simp add: hyperset_defs elim: sup_state_opt_trans intro: sup_state_opt_trans[OF ty\<^sub>i'_incr] ty\<^sub>i'_antimono2)
[PROOF STATE]
proof (state)
this:
P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E_ A_

goal (10 subgoals):
 1. \<And>E A STa C. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (new C)); \<B> (new C) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 2. \<And>E A STa C e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Cast C e)); \<B> (Cast C e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 3. \<And>E A STa e T. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e instanceof T)); \<B> (e instanceof T) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 4. \<And>E A STa v. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Val v)); \<B> (Val v) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 5. \<And>E A STa i. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (Var i)); \<B> (Var i) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 6. \<And>E A STa i e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (i:=e)); \<B> (i:=e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 7. \<And>E A STa e F D. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (e\<bullet>F{D})); \<B> (e\<bullet>F{D}) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 8. \<And>E A STa i a e. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (insync\<^bsub>i\<^esub> (a) e)); \<B> (insync\<^bsub>i\<^esub> (a) e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 9. \<And>E A STa e. \<lbrakk>\<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa e); \<B> e (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A STa (throw e)); \<B> (throw e) (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
 10. \<And>E A STa. \<lbrakk>\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A STa []); \<B>s [] (length E)\<rbrakk> \<Longrightarrow> P \<turnstile> \<lfloor>(ST, LT)\<rfloor> \<le>' ty\<^sub>i' ST E A
[PROOF STEP]
qed (auto simp:hyperset_defs)