[STATEMENT]
lemma (in TC1) compT_ST_prefix:
 "\<And>E A ST\<^sub>0. \<lfloor>(ST,LT)\<rfloor> \<in> set(compT E A ST\<^sub>0 e) \<Longrightarrow>
  size ST\<^sub>0 \<le> size ST \<and> drop (size ST - size ST\<^sub>0) ST = ST\<^sub>0"
and
 "\<And>E A ST\<^sub>0. \<lfloor>(ST,LT)\<rfloor> \<in> set(compTs E A ST\<^sub>0 es) \<Longrightarrow>
  size ST\<^sub>0 \<le> size ST \<and> drop (size ST - size ST\<^sub>0) ST = ST\<^sub>0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 e) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0) &&& (\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 es) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0)
[PROOF STEP]
(*<*)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 e) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0) &&& (\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 es) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0)
[PROOF STEP]
proof(induct e and es rule: compT.induct compTs.induct)
[PROOF STATE]
proof (state)
goal (22 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 22 subgoals...
[PROOF STEP]
case (FAss e\<^sub>1 F D e\<^sub>2)
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))

goal (22 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 22 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))

goal (22 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 22 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))

goal (22 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 22 subgoals...
[PROOF STEP]
let ?ST\<^sub>0 = "ty E e\<^sub>1 # ST\<^sub>0"
[PROOF STATE]
proof (state)
goal (22 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 22 subgoals...
[PROOF STEP]
fix A
[PROOF STATE]
proof (state)
goal (22 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 22 subgoals...
[PROOF STEP]
assume "\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ?ST\<^sub>0 e\<^sub>2)"
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A (ty E e\<^sub>1 # ST\<^sub>0) e\<^sub>2)

goal (22 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 22 subgoals...
[PROOF STEP]
with FAss
[PROOF STATE]
proof (chain)
picking this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A__ ST\<^sub>0 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A (ty E e\<^sub>1 # ST\<^sub>0) e\<^sub>2)
[PROOF STEP]
have "length ?ST\<^sub>0 \<le> length ST \<and> drop (size ST - size ?ST\<^sub>0) ST = ?ST\<^sub>0"
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A__ ST\<^sub>0 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A (ty E e\<^sub>1 # ST\<^sub>0) e\<^sub>2)

goal (1 subgoal):
 1. length (ty E e\<^sub>1 # ST\<^sub>0) \<le> length ST \<and> drop (length ST - length (ty E e\<^sub>1 # ST\<^sub>0)) ST = ty E e\<^sub>1 # ST\<^sub>0
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
length (ty E e\<^sub>1 # ST\<^sub>0) \<le> length ST \<and> drop (length ST - length (ty E e\<^sub>1 # ST\<^sub>0)) ST = ty E e\<^sub>1 # ST\<^sub>0

goal (22 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 22 subgoals...
[PROOF STEP]
hence ?case
[PROOF STATE]
proof (prove)
using this:
length (ty E e\<^sub>1 # ST\<^sub>0) \<le> length ST \<and> drop (length ST - length (ty E e\<^sub>1 # ST\<^sub>0)) ST = ty E e\<^sub>1 # ST\<^sub>0

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by (clarsimp simp add: drop_mess)
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (22 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 22 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E ?Aa4 (ty E e\<^sub>1 # ST\<^sub>0) e\<^sub>2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (22 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 22 subgoals...
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E ?Aa4 (ty E e\<^sub>1 # ST\<^sub>0) e\<^sub>2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E ?Aa4 (ty E e\<^sub>1 # ST\<^sub>0) e\<^sub>2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (21 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 21 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (21 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 21 subgoals...
[PROOF STEP]
case TryCatch
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x1_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x4_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (try x1_ catch(x2_ x3_) x4_))

goal (21 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 21 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x1_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x4_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (try x1_ catch(x2_ x3_) x4_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (20 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 20 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (20 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 20 subgoals...
[PROOF STEP]
case Block
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x3_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 {x1_:x2_; x3_})

goal (20 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 20 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x3_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 {x1_:x2_; x3_})

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (19 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 19 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (19 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 19 subgoals...
[PROOF STEP]
case Seq
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x1_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x2_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1_;; x2_))

goal (19 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 19 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x1_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x2_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1_;; x2_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (18 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 18 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (18 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 18 subgoals...
[PROOF STEP]
case While
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x1_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x2_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (while (x1_) x2_))

goal (18 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 18 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x1_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x2_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (while (x1_) x2_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (17 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 17 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (17 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 17 subgoals...
[PROOF STEP]
case Cond
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x1_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x2_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x3_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (if (x1_) x2_ else x3_))

goal (17 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 17 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x1_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x2_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x3_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (if (x1_) x2_ else x3_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (16 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 16 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (16 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 16 subgoals...
[PROOF STEP]
case (Call e M es)
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<bullet>M(es)))

goal (16 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 16 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<bullet>M(es)))

goal (16 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 16 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<bullet>M(es)))

goal (16 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 16 subgoals...
[PROOF STEP]
let ?ST\<^sub>0 = "ty E e # ST\<^sub>0"
[PROOF STATE]
proof (state)
goal (16 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 16 subgoals...
[PROOF STEP]
fix A
[PROOF STATE]
proof (state)
goal (16 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 16 subgoals...
[PROOF STEP]
assume "\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ?ST\<^sub>0 es)"
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A (ty E e # ST\<^sub>0) es)

goal (16 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 16 subgoals...
[PROOF STEP]
with Call
[PROOF STATE]
proof (chain)
picking this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A__ ST\<^sub>0 (e\<bullet>M(es)))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A (ty E e # ST\<^sub>0) es)
[PROOF STEP]
have "length ?ST\<^sub>0 \<le> length ST \<and> drop (size ST - size ?ST\<^sub>0) ST = ?ST\<^sub>0"
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A__ ST\<^sub>0 (e\<bullet>M(es)))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A (ty E e # ST\<^sub>0) es)

goal (1 subgoal):
 1. length (ty E e # ST\<^sub>0) \<le> length ST \<and> drop (length ST - length (ty E e # ST\<^sub>0)) ST = ty E e # ST\<^sub>0
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
length (ty E e # ST\<^sub>0) \<le> length ST \<and> drop (length ST - length (ty E e # ST\<^sub>0)) ST = ty E e # ST\<^sub>0

goal (16 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 16 subgoals...
[PROOF STEP]
hence ?case
[PROOF STATE]
proof (prove)
using this:
length (ty E e # ST\<^sub>0) \<le> length ST \<and> drop (length ST - length (ty E e # ST\<^sub>0)) ST = ty E e # ST\<^sub>0

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by (clarsimp simp add: drop_mess)
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (16 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 16 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E ?Aa4 (ty E e # ST\<^sub>0) es) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (16 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 16 subgoals...
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<bullet>M(es)))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E ?Aa4 (ty E e # ST\<^sub>0) es) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<bullet>M(es)))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E ?Aa4 (ty E e # ST\<^sub>0) es) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (15 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 15 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (15 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 15 subgoals...
[PROOF STEP]
case (Cons_exp e es)
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 (e # es))

goal (15 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 15 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 (e # es))

goal (15 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 15 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 (e # es))

goal (15 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 15 subgoals...
[PROOF STEP]
let ?ST\<^sub>0 = "ty E e # ST\<^sub>0"
[PROOF STATE]
proof (state)
goal (15 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 15 subgoals...
[PROOF STEP]
fix A
[PROOF STATE]
proof (state)
goal (15 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 15 subgoals...
[PROOF STEP]
assume "\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ?ST\<^sub>0 es)"
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A (ty E e # ST\<^sub>0) es)

goal (15 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 15 subgoals...
[PROOF STEP]
with Cons_exp
[PROOF STATE]
proof (chain)
picking this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A__ ST\<^sub>0 (e # es))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A (ty E e # ST\<^sub>0) es)
[PROOF STEP]
have "length ?ST\<^sub>0 \<le> length ST \<and> drop (size ST - size ?ST\<^sub>0) ST = ?ST\<^sub>0"
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A__ ST\<^sub>0 (e # es))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A (ty E e # ST\<^sub>0) es)

goal (1 subgoal):
 1. length (ty E e # ST\<^sub>0) \<le> length ST \<and> drop (length ST - length (ty E e # ST\<^sub>0)) ST = ty E e # ST\<^sub>0
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
length (ty E e # ST\<^sub>0) \<le> length ST \<and> drop (length ST - length (ty E e # ST\<^sub>0)) ST = ty E e # ST\<^sub>0

goal (15 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 15 subgoals...
[PROOF STEP]
hence ?case
[PROOF STATE]
proof (prove)
using this:
length (ty E e # ST\<^sub>0) \<le> length ST \<and> drop (length ST - length (ty E e # ST\<^sub>0)) ST = ty E e # ST\<^sub>0

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by (clarsimp simp add: drop_mess)
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (15 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 15 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E ?Aa4 (ty E e # ST\<^sub>0) es) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (15 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 15 subgoals...
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 (e # es))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E ?Aa4 (ty E e # ST\<^sub>0) es) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 (e # es))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E ?Aa4 (ty E e # ST\<^sub>0) es) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (14 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 14 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (14 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 14 subgoals...
[PROOF STEP]
case (BinOp e\<^sub>1 bop e\<^sub>2)
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))

goal (14 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 14 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))

goal (14 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 14 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))

goal (14 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 14 subgoals...
[PROOF STEP]
let ?ST\<^sub>0 = "ty E e\<^sub>1 # ST\<^sub>0"
[PROOF STATE]
proof (state)
goal (14 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 14 subgoals...
[PROOF STEP]
fix A
[PROOF STATE]
proof (state)
goal (14 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 14 subgoals...
[PROOF STEP]
assume "\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ?ST\<^sub>0 e\<^sub>2)"
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A (ty E e\<^sub>1 # ST\<^sub>0) e\<^sub>2)

goal (14 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 14 subgoals...
[PROOF STEP]
with BinOp
[PROOF STATE]
proof (chain)
picking this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A__ ST\<^sub>0 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A (ty E e\<^sub>1 # ST\<^sub>0) e\<^sub>2)
[PROOF STEP]
have "length ?ST\<^sub>0 \<le> length ST \<and> drop (size ST - size ?ST\<^sub>0) ST = ?ST\<^sub>0"
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A__ ST\<^sub>0 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A (ty E e\<^sub>1 # ST\<^sub>0) e\<^sub>2)

goal (1 subgoal):
 1. length (ty E e\<^sub>1 # ST\<^sub>0) \<le> length ST \<and> drop (length ST - length (ty E e\<^sub>1 # ST\<^sub>0)) ST = ty E e\<^sub>1 # ST\<^sub>0
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
length (ty E e\<^sub>1 # ST\<^sub>0) \<le> length ST \<and> drop (length ST - length (ty E e\<^sub>1 # ST\<^sub>0)) ST = ty E e\<^sub>1 # ST\<^sub>0

goal (14 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 14 subgoals...
[PROOF STEP]
hence ?case
[PROOF STATE]
proof (prove)
using this:
length (ty E e\<^sub>1 # ST\<^sub>0) \<le> length ST \<and> drop (length ST - length (ty E e\<^sub>1 # ST\<^sub>0)) ST = ty E e\<^sub>1 # ST\<^sub>0

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by (clarsimp simp add: drop_mess)
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (14 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 14 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E ?Aa4 (ty E e\<^sub>1 # ST\<^sub>0) e\<^sub>2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (14 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1 \<guillemotleft>x2\<guillemotright> x3))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 14 subgoals...
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E ?Aa4 (ty E e\<^sub>1 # ST\<^sub>0) e\<^sub>2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>1) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 e\<^sub>2) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E ?Aa4 (ty E e\<^sub>1 # ST\<^sub>0) e\<^sub>2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (13 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 13 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (13 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 13 subgoals...
[PROOF STEP]
case new
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x_))

goal (13 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 13 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (new x_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (12 subgoals):
 1. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 12 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (12 subgoals):
 1. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 12 subgoals...
[PROOF STEP]
case Val
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x_))

goal (12 subgoals):
 1. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 12 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Val x_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (11 subgoals):
 1. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 11 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (11 subgoals):
 1. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 11 subgoals...
[PROOF STEP]
case Cast
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x2_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1_ x2_))

goal (11 subgoals):
 1. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1 x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
A total of 11 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x2_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Cast x1_ x2_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (10 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (10 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
case Var
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x_))

goal (10 subgoals):
 1. \<And>x E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x)) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 10. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (Var x_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (9 subgoals):
 1. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (9 subgoals):
 1. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
case LAss
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x2_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1_:=x2_))

goal (9 subgoals):
 1. \<And>x1 x2 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1:=x2))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 9. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x2_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1_:=x2_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (8 subgoals):
 1. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (8 subgoals):
 1. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
case throw
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x_))

goal (8 subgoals):
 1. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 8. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (throw x_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (7 subgoals):
 1. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (7 subgoals):
 1. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
case FAcc
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x1_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1_\<bullet>x2_{x3_}))

goal (7 subgoals):
 1. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x1) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>x2{x3}))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 7. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x1_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1_\<bullet>x2_{x3_}))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (6 subgoals):
 1. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
case SFAcc
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1_\<bullet>\<^sub>sx2_{x3_}))

goal (6 subgoals):
 1. \<And>x1 x2 x3 E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3})) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 6. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1_\<bullet>\<^sub>sx2_{x3_}))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (5 subgoals):
 1. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
case SFAss
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x4_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1_\<bullet>\<^sub>sx2_{x3_} := x4_))

goal (5 subgoals):
 1. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2{x3} := x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 5. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x4_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1_\<bullet>\<^sub>sx2_{x3_} := x4_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (4 subgoals):
 1. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
case (SCall C M es)
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (C\<bullet>\<^sub>sM(es)))

goal (4 subgoals):
 1. \<And>x1 x2 x3 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 x3) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (x1\<bullet>\<^sub>sx2(x3)))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 4. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs ?E2 ?A2 ?ST\<^sub>02 es) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (C\<bullet>\<^sub>sM(es)))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (3 subgoals):
 1. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
case INIT
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x4_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1_ (x2_,x3_) \<leftarrow> x4_))

goal (3 subgoals):
 1. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1 (x2,x3) \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 3. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x4_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (INIT x1_ (x2_,x3_) \<leftarrow> x4_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (2 subgoals):
 1. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
case RI
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x2_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x4_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1_,x2_) ; x3_ \<leftarrow> x4_))

goal (2 subgoals):
 1. \<And>x1 x2 x3 x4 E A ST\<^sub>0. \<lbrakk>\<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x2) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 x4) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0; \<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1,x2) ; x3 \<leftarrow> x4))\<rbrakk> \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
 2. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x2_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT ?E2 ?A2 ?ST\<^sub>02 x4_) \<Longrightarrow> length ?ST\<^sub>02 \<le> length ST \<and> drop (length ST - length ?ST\<^sub>02) ST = ?ST\<^sub>02
\<lfloor>(ST, LT)\<rfloor> \<in> set (compT E A ST\<^sub>0 (RI (x1_,x2_) ; x3_ \<leftarrow> x4_))

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal (1 subgoal):
 1. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
case Nil_exp
[PROOF STATE]
proof (state)
this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 [])

goal (1 subgoal):
 1. \<And>E A ST\<^sub>0. \<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 []) \<Longrightarrow> length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lfloor>(ST, LT)\<rfloor> \<in> set (compTs E A ST\<^sub>0 [])

goal (1 subgoal):
 1. length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
length ST\<^sub>0 \<le> length ST \<and> drop (length ST - length ST\<^sub>0) ST = ST\<^sub>0

goal:
No subgoals!
[PROOF STEP]
qed