[STATEMENT]
lemma fixes P\<^sub>1 defines [simp]: "P \<equiv> compP\<^sub>2 P\<^sub>1"
shows Jcc:
  "P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0,ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>ef,(h\<^sub>1,ls\<^sub>1)\<rangle> \<Longrightarrow>
  (\<And>C M pc v xa vs frs I.
     \<lbrakk> P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (size vs)/I,size vs;
       {pc..<pc+size(compE\<^sub>2 e)} \<subseteq> I \<rbrakk> \<Longrightarrow>
     (ef = Val v \<longrightarrow>
      P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow>
            (None,h\<^sub>1,(v#vs,ls\<^sub>1,C,M,pc+size(compE\<^sub>2 e))#frs))
     \<and>
     (ef = Throw xa \<longrightarrow>
      (\<exists>pc\<^sub>1. pc \<le> pc\<^sub>1 \<and> pc\<^sub>1 < pc + size(compE\<^sub>2 e) \<and>
               \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 e pc (size vs)) \<and>
               P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs)))"
(*<*)
  (is "_ \<Longrightarrow> (\<And>C M pc v xa vs frs I.
                  PROP ?P e h\<^sub>0 ls\<^sub>0 ef h\<^sub>1 ls\<^sub>1 C M pc v xa vs frs I)")
(*>*)

and "P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(h\<^sub>0,ls\<^sub>0)\<rangle> [\<Rightarrow>] \<langle>fs,(h\<^sub>1,ls\<^sub>1)\<rangle> \<Longrightarrow>
    (\<And>C M pc ws xa es' vs frs I.
      \<lbrakk> P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (size vs)/I,size vs;
       {pc..<pc+size(compEs\<^sub>2 es)} \<subseteq> I \<rbrakk> \<Longrightarrow>
      (fs = map Val ws \<longrightarrow>
       P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow>
             (None,h\<^sub>1,(rev ws @ vs,ls\<^sub>1,C,M,pc+size(compEs\<^sub>2 es))#frs))
      \<and>
      (fs = map Val ws @ Throw xa # es' \<longrightarrow>
       (\<exists>pc\<^sub>1. pc \<le> pc\<^sub>1 \<and> pc\<^sub>1 < pc + size(compEs\<^sub>2 es) \<and>
                \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxEs\<^sub>2 es pc (size vs)) \<and>
                P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs)))"
(*<*)
  (is "_ \<Longrightarrow> (\<And>C M pc ws xa es' vs frs I.
                  PROP ?Ps es h\<^sub>0 ls\<^sub>0 fs h\<^sub>1 ls\<^sub>1 C M pc ws xa es' vs frs I)")
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>ef,(h\<^sub>1, ls\<^sub>1)\<rangle> \<Longrightarrow> (\<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (ef = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (ef = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs)))) &&& (P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(h\<^sub>0, ls\<^sub>0)\<rangle> [\<Rightarrow>] \<langle>fs,(h\<^sub>1, ls\<^sub>1)\<rangle> \<Longrightarrow> (\<And>C M pc ws xa es' vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (fs = map Val ws \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (rev ws @ vs, ls\<^sub>1, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (fs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs))))
[PROOF STEP]
proof (induct rule:eval\<^sub>1_evals\<^sub>1_inducts)
[PROOF STATE]
proof (state)
goal (43 subgoals):
 1. \<And>h a C FDTs h' l Ca M pc v xa vs frs I. \<lbrakk>new_Addr h = \<lfloor>a\<rfloor>; P\<^sub>1 \<turnstile> C has_fields FDTs; h' = h(a \<mapsto> (C, init_fields FDTs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (new C); P,Ca,M \<rhd> compxE\<^sub>2 (new C) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (new C))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr a = Val v \<longrightarrow> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h', (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (new C))) # frs)) \<and> (addr a = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (new C)) \<and> \<not> caught P pc\<^sub>1 h' xa (compxE\<^sub>2 (new C) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h' vs l pc\<^sub>1 frs))
 2. \<And>h C l Ca M pc v xa vs frs I. \<lbrakk>new_Addr h = None; P,Ca,M,pc \<rhd> compE\<^sub>2 (new C); P,Ca,M \<rhd> compxE\<^sub>2 (new C) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (new C))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW OutOfMemory = Val v \<longrightarrow> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (new C))) # frs)) \<and> (THROW OutOfMemory = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (new C)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (new C) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 3. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 4. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 43 subgoals...
[PROOF STEP]
case New\<^sub>1
[PROOF STATE]
proof (state)
this:
new_Addr h_ = \<lfloor>a_\<rfloor>
P\<^sub>1 \<turnstile> C_ has_fields FDTs_
h'_ = h_(a_ \<mapsto> (C_, init_fields FDTs_))
P,C,M,pc \<rhd> compE\<^sub>2 (new C_)
P,C,M \<rhd> compxE\<^sub>2 (new C_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (new C_))} \<subseteq> I

goal (43 subgoals):
 1. \<And>h a C FDTs h' l Ca M pc v xa vs frs I. \<lbrakk>new_Addr h = \<lfloor>a\<rfloor>; P\<^sub>1 \<turnstile> C has_fields FDTs; h' = h(a \<mapsto> (C, init_fields FDTs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (new C); P,Ca,M \<rhd> compxE\<^sub>2 (new C) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (new C))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr a = Val v \<longrightarrow> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h', (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (new C))) # frs)) \<and> (addr a = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (new C)) \<and> \<not> caught P pc\<^sub>1 h' xa (compxE\<^sub>2 (new C) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h' vs l pc\<^sub>1 frs))
 2. \<And>h C l Ca M pc v xa vs frs I. \<lbrakk>new_Addr h = None; P,Ca,M,pc \<rhd> compE\<^sub>2 (new C); P,Ca,M \<rhd> compxE\<^sub>2 (new C) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (new C))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW OutOfMemory = Val v \<longrightarrow> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (new C))) # frs)) \<and> (THROW OutOfMemory = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (new C)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (new C) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 3. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 4. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 43 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
new_Addr h_ = \<lfloor>a_\<rfloor>
P\<^sub>1 \<turnstile> C_ has_fields FDTs_
h'_ = h_(a_ \<mapsto> (C_, init_fields FDTs_))
P,C,M,pc \<rhd> compE\<^sub>2 (new C_)
P,C,M \<rhd> compxE\<^sub>2 (new C_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (new C_))} \<subseteq> I

goal (1 subgoal):
 1. (addr a_ = Val v \<longrightarrow> P \<turnstile> (None, h_, (vs, l_, C, M, pc) # frs) -jvm\<rightarrow> (None, h'_, (v # vs, l_, C, M, pc + length (compE\<^sub>2 (new C_))) # frs)) \<and> (addr a_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (new C_)) \<and> \<not> caught P pc\<^sub>1 h'_ xa (compxE\<^sub>2 (new C_) pc (length vs)) \<and> P \<turnstile> (None, h_, (vs, l_, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h'_ vs l_ pc\<^sub>1 frs))
[PROOF STEP]
by (clarsimp simp add:blank_def fun_eq_iff)
[PROOF STATE]
proof (state)
this:
(addr a_ = Val v \<longrightarrow> P \<turnstile> (None, h_, (vs, l_, C, M, pc) # frs) -jvm\<rightarrow> (None, h'_, (v # vs, l_, C, M, pc + length (compE\<^sub>2 (new C_))) # frs)) \<and> (addr a_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (new C_)) \<and> \<not> caught P pc\<^sub>1 h'_ xa (compxE\<^sub>2 (new C_) pc (length vs)) \<and> P \<turnstile> (None, h_, (vs, l_, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h'_ vs l_ pc\<^sub>1 frs))

goal (42 subgoals):
 1. \<And>h C l Ca M pc v xa vs frs I. \<lbrakk>new_Addr h = None; P,Ca,M,pc \<rhd> compE\<^sub>2 (new C); P,Ca,M \<rhd> compxE\<^sub>2 (new C) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (new C))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW OutOfMemory = Val v \<longrightarrow> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (new C))) # frs)) \<and> (THROW OutOfMemory = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (new C)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (new C) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 3. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
A total of 42 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (42 subgoals):
 1. \<And>h C l Ca M pc v xa vs frs I. \<lbrakk>new_Addr h = None; P,Ca,M,pc \<rhd> compE\<^sub>2 (new C); P,Ca,M \<rhd> compxE\<^sub>2 (new C) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (new C))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW OutOfMemory = Val v \<longrightarrow> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (new C))) # frs)) \<and> (THROW OutOfMemory = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (new C)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (new C) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 3. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
A total of 42 subgoals...
[PROOF STEP]
case NewFail\<^sub>1
[PROOF STATE]
proof (state)
this:
new_Addr h_ = None
P,C,M,pc \<rhd> compE\<^sub>2 (new C_)
P,C,M \<rhd> compxE\<^sub>2 (new C_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (new C_))} \<subseteq> I

goal (42 subgoals):
 1. \<And>h C l Ca M pc v xa vs frs I. \<lbrakk>new_Addr h = None; P,Ca,M,pc \<rhd> compE\<^sub>2 (new C); P,Ca,M \<rhd> compxE\<^sub>2 (new C) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (new C))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW OutOfMemory = Val v \<longrightarrow> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (new C))) # frs)) \<and> (THROW OutOfMemory = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (new C)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (new C) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, l, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 3. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
A total of 42 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
new_Addr h_ = None
P,C,M,pc \<rhd> compE\<^sub>2 (new C_)
P,C,M \<rhd> compxE\<^sub>2 (new C_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (new C_))} \<subseteq> I

goal (1 subgoal):
 1. (THROW OutOfMemory = Val v \<longrightarrow> P \<turnstile> (None, h_, (vs, l_, C, M, pc) # frs) -jvm\<rightarrow> (None, h_, (v # vs, l_, C, M, pc + length (compE\<^sub>2 (new C_))) # frs)) \<and> (THROW OutOfMemory = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (new C_)) \<and> \<not> caught P pc\<^sub>1 h_ xa (compxE\<^sub>2 (new C_) pc (length vs)) \<and> P \<turnstile> (None, h_, (vs, l_, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h_ vs l_ pc\<^sub>1 frs))
[PROOF STEP]
by(auto simp: handle_def pcs_def)
[PROOF STATE]
proof (state)
this:
(THROW OutOfMemory = Val v \<longrightarrow> P \<turnstile> (None, h_, (vs, l_, C, M, pc) # frs) -jvm\<rightarrow> (None, h_, (v # vs, l_, C, M, pc + length (compE\<^sub>2 (new C_))) # frs)) \<and> (THROW OutOfMemory = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (new C_)) \<and> \<not> caught P pc\<^sub>1 h_ xa (compxE\<^sub>2 (new C_) pc (length vs)) \<and> P \<turnstile> (None, h_, (vs, l_, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h_ vs l_ pc\<^sub>1 frs))

goal (41 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 10. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
A total of 41 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (41 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 10. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
A total of 41 subgoals...
[PROOF STEP]
case (Cast\<^sub>1 e h\<^sub>0 ls\<^sub>0 a h\<^sub>1 ls\<^sub>1 D fs C')
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>addr a,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (addr a = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (addr a = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
h\<^sub>1 a = \<lfloor>(D, fs)\<rfloor>
P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C'
P,C,M,pc \<rhd> compE\<^sub>2 (Cast C' e)
P,C,M \<rhd> compxE\<^sub>2 (Cast C' e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Cast C' e))} \<subseteq> I

goal (41 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 10. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
A total of 41 subgoals...
[PROOF STEP]
let ?pc = "pc + length(compE\<^sub>2 e)"
[PROOF STATE]
proof (state)
goal (41 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 10. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
A total of 41 subgoals...
[PROOF STEP]
have "P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow>
             (None,h\<^sub>1,(Addr a#vs,ls\<^sub>1,C,M,?pc)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)
[PROOF STEP]
using Cast\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>addr a,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (addr a = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (addr a = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
h\<^sub>1 a = \<lfloor>(D, fs)\<rfloor>
P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C'
P,C,M,pc \<rhd> compE\<^sub>2 (Cast C' e)
P,C,M \<rhd> compxE\<^sub>2 (Cast C' e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Cast C' e))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)

goal (41 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 10. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
A total of 41 subgoals...
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)

goal (41 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 10. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
A total of 41 subgoals...
[PROOF STEP]
have "P \<turnstile> \<dots> -jvm\<rightarrow> (None,h\<^sub>1,(Addr a#vs,ls\<^sub>1,C,M,?pc+1)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)
[PROOF STEP]
using Cast\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>addr a,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (addr a = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (addr a = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
h\<^sub>1 a = \<lfloor>(D, fs)\<rfloor>
P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C'
P,C,M,pc \<rhd> compE\<^sub>2 (Cast C' e)
P,C,M \<rhd> compxE\<^sub>2 (Cast C' e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Cast C' e))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)
[PROOF STEP]
by (auto simp add:cast_ok_def)
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)

goal (41 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; P\<^sub>1 \<turnstile> D \<preceq>\<^sup>* C; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 10. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
A total of 41 subgoals...
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)

goal (1 subgoal):
 1. (addr a = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (Cast C' e))) # frs)) \<and> (addr a = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs))
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(addr a = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (Cast C' e))) # frs)) \<and> (addr a = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs))

goal (40 subgoals):
 1. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 9. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 40 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (40 subgoals):
 1. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 9. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 40 subgoals...
[PROOF STEP]
case (CastNull\<^sub>1 e h\<^sub>0 ls\<^sub>0 h\<^sub>1 ls\<^sub>1 C')
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>null,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (null = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (null = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (Cast C' e)
P,C,M \<rhd> compxE\<^sub>2 (Cast C' e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Cast C' e))} \<subseteq> I

goal (40 subgoals):
 1. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 9. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 40 subgoals...
[PROOF STEP]
let ?pc = "pc + length(compE\<^sub>2 e)"
[PROOF STATE]
proof (state)
goal (40 subgoals):
 1. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 9. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 40 subgoals...
[PROOF STEP]
have "P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow>
            (None,h\<^sub>1,(Null#vs,ls\<^sub>1,C,M,?pc)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)
[PROOF STEP]
using CastNull\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>null,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (null = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (null = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (Cast C' e)
P,C,M \<rhd> compxE\<^sub>2 (Cast C' e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Cast C' e))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)

goal (40 subgoals):
 1. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 9. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 40 subgoals...
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)

goal (40 subgoals):
 1. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 9. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 40 subgoals...
[PROOF STEP]
have "P \<turnstile> \<dots> -jvm\<rightarrow> (None,h\<^sub>1,(Null#vs,ls\<^sub>1,C,M,?pc+1)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)
[PROOF STEP]
using CastNull\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>null,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (null = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (null = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (Cast C' e)
P,C,M \<rhd> compxE\<^sub>2 (Cast C' e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Cast C' e))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)
[PROOF STEP]
by (auto simp add:cast_ok_def)
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)

goal (40 subgoals):
 1. \<And>e a b aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 9. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 40 subgoals...
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)

goal (1 subgoal):
 1. (null = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (Cast C' e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs))
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(null = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (Cast C' e))) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs))

goal (39 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
A total of 39 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (39 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
A total of 39 subgoals...
[PROOF STEP]
case (CastFail\<^sub>1 e h\<^sub>0 ls\<^sub>0 a h\<^sub>1 ls\<^sub>1 D fs C')
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>addr a,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (addr a = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (addr a = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
h\<^sub>1 a = \<lfloor>(D, fs)\<rfloor>
(D, C') \<notin> (subcls1 P\<^sub>1)\<^sup>*
P,C,M,pc \<rhd> compE\<^sub>2 (Cast C' e)
P,C,M \<rhd> compxE\<^sub>2 (Cast C' e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Cast C' e))} \<subseteq> I

goal (39 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
A total of 39 subgoals...
[PROOF STEP]
let ?pc = "pc + length(compE\<^sub>2 e)"
[PROOF STATE]
proof (state)
goal (39 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
A total of 39 subgoals...
[PROOF STEP]
let ?xa = "addr_of_sys_xcpt ClassCast"
[PROOF STATE]
proof (state)
goal (39 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
A total of 39 subgoals...
[PROOF STEP]
have "P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow>
             (None,h\<^sub>1,(Addr a#vs,ls\<^sub>1,C,M,?pc)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)
[PROOF STEP]
using CastFail\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>addr a,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (addr a = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (addr a = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
h\<^sub>1 a = \<lfloor>(D, fs)\<rfloor>
(D, C') \<notin> (subcls1 P\<^sub>1)\<^sup>*
P,C,M,pc \<rhd> compE\<^sub>2 (Cast C' e)
P,C,M \<rhd> compxE\<^sub>2 (Cast C' e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Cast C' e))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)

goal (39 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
A total of 39 subgoals...
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)

goal (39 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
A total of 39 subgoals...
[PROOF STEP]
have "P \<turnstile> \<dots> -jvm\<rightarrow> handle P C M ?xa h\<^sub>1 (Addr a#vs) ls\<^sub>1 ?pc frs"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 (Addr a # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
using CastFail\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>addr a,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (addr a = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (addr a = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
h\<^sub>1 a = \<lfloor>(D, fs)\<rfloor>
(D, C') \<notin> (subcls1 P\<^sub>1)\<^sup>*
P,C,M,pc \<rhd> compE\<^sub>2 (Cast C' e)
P,C,M \<rhd> compxE\<^sub>2 (Cast C' e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Cast C' e))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 (Addr a # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
by (auto simp add:handle_def cast_ok_def)
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 (Addr a # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs

goal (39 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
A total of 39 subgoals...
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 (Addr a # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs

goal (39 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
A total of 39 subgoals...
[PROOF STEP]
have "handle P C M ?xa h\<^sub>1 (Addr a#vs) ls\<^sub>1 ?pc frs =
             handle P C M ?xa h\<^sub>1 vs ls\<^sub>1 ?pc frs"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 (Addr a # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs = handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
using CastFail\<^sub>1.prems
[PROOF STATE]
proof (prove)
using this:
P,C,M,pc \<rhd> compE\<^sub>2 (Cast C' e)
P,C,M \<rhd> compxE\<^sub>2 (Cast C' e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Cast C' e))} \<subseteq> I

goal (1 subgoal):
 1. handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 (Addr a # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs = handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
by(auto simp:handle_Cons)
[PROOF STATE]
proof (state)
this:
handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 (Addr a # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs = handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs

goal (39 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
A total of 39 subgoals...
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
have exec: "P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow> \<dots>"
[PROOF STATE]
proof (prove)
using this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
.
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs

goal (39 subgoals):
 1. \<And>e a b aa h l D fs C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, l)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs l pc\<^sub>1 frs)); h aa = \<lfloor>(D, fs)\<rfloor>; (D, C) \<notin> (subcls1 P\<^sub>1)\<^sup>*; P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, l, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs l pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
A total of 39 subgoals...
[PROOF STEP]
show ?case (is "?N \<and> (?eq \<longrightarrow> (\<exists>pc\<^sub>1. ?H pc\<^sub>1))")
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (Cast C' e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs))
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (Cast C' e))) # frs)
 2. THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs)
[PROOF STEP]
show ?N
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (Cast C' e))) # frs)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (Cast C' e))) # frs)

goal (1 subgoal):
 1. THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs)
[PROOF STEP]
have "?eq \<longrightarrow> ?H ?pc"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. THROW ClassCast = Throw xa \<longrightarrow> pc \<le> pc + length (compE\<^sub>2 e) \<and> pc + length (compE\<^sub>2 e) < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P (pc + length (compE\<^sub>2 e)) h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
using exec
[PROOF STATE]
proof (prove)
using this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt ClassCast) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs

goal (1 subgoal):
 1. THROW ClassCast = Throw xa \<longrightarrow> pc \<le> pc + length (compE\<^sub>2 e) \<and> pc + length (compE\<^sub>2 e) < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P (pc + length (compE\<^sub>2 e)) h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
THROW ClassCast = Throw xa \<longrightarrow> pc \<le> pc + length (compE\<^sub>2 e) \<and> pc + length (compE\<^sub>2 e) < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P (pc + length (compE\<^sub>2 e)) h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs

goal (1 subgoal):
 1. THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs)
[PROOF STEP]
thus "?eq \<longrightarrow> (\<exists>pc\<^sub>1. ?H pc\<^sub>1)"
[PROOF STATE]
proof (prove)
using this:
THROW ClassCast = Throw xa \<longrightarrow> pc \<le> pc + length (compE\<^sub>2 e) \<and> pc + length (compE\<^sub>2 e) < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P (pc + length (compE\<^sub>2 e)) h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs

goal (1 subgoal):
 1. THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs)
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(THROW ClassCast = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (Cast C' e))) # frs)) \<and> (THROW ClassCast = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C' e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (Cast C' e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs))

goal (38 subgoals):
 1. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 10. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 38 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (38 subgoals):
 1. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 10. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 38 subgoals...
[PROOF STEP]
case CastThrow\<^sub>1
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e_,(a___, b___)\<rangle> \<Rightarrow> \<langle>throw e'_,(a_, b_)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e_; P,?C,?M \<rhd> compxE\<^sub>2 e_ ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e_)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (throw e'_ = Val ?v \<longrightarrow> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, a_, (?v # ?vs, b_, ?C, ?M, ?pc + length (compE\<^sub>2 e_)) # ?frs)) \<and> (throw e'_ = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e_) \<and> \<not> caught P pc\<^sub>1 a_ ?xa (compxE\<^sub>2 e_ ?pc (length ?vs)) \<and> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa a_ ?vs b_ pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (Cast C_ e_)
P,C,M \<rhd> compxE\<^sub>2 (Cast C_ e_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Cast C_ e_))} \<subseteq> I

goal (38 subgoals):
 1. \<And>e a b e' aa ba C Ca M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,Ca,M,pc \<rhd> compE\<^sub>2 (Cast C e); P,Ca,M \<rhd> compxE\<^sub>2 (Cast C e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Cast C e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, Ca, M, pc + length (compE\<^sub>2 (Cast C e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (Cast C e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 10. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 38 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e_,(a___, b___)\<rangle> \<Rightarrow> \<langle>throw e'_,(a_, b_)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e_; P,?C,?M \<rhd> compxE\<^sub>2 e_ ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e_)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (throw e'_ = Val ?v \<longrightarrow> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, a_, (?v # ?vs, b_, ?C, ?M, ?pc + length (compE\<^sub>2 e_)) # ?frs)) \<and> (throw e'_ = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e_) \<and> \<not> caught P pc\<^sub>1 a_ ?xa (compxE\<^sub>2 e_ ?pc (length ?vs)) \<and> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa a_ ?vs b_ pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (Cast C_ e_)
P,C,M \<rhd> compxE\<^sub>2 (Cast C_ e_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Cast C_ e_))} \<subseteq> I

goal (1 subgoal):
 1. (throw e'_ = Val v \<longrightarrow> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> (None, a_, (v # vs, b_, C, M, pc + length (compE\<^sub>2 (Cast C_ e_))) # frs)) \<and> (throw e'_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C_ e_)) \<and> \<not> caught P pc\<^sub>1 a_ xa (compxE\<^sub>2 (Cast C_ e_) pc (length vs)) \<and> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a_ vs b_ pc\<^sub>1 frs))
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
(throw e'_ = Val v \<longrightarrow> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> (None, a_, (v # vs, b_, C, M, pc + length (compE\<^sub>2 (Cast C_ e_))) # frs)) \<and> (throw e'_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Cast C_ e_)) \<and> \<not> caught P pc\<^sub>1 a_ xa (compxE\<^sub>2 (Cast C_ e_) pc (length vs)) \<and> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a_ vs b_ pc\<^sub>1 frs))

goal (37 subgoals):
 1. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 6. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 9. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 37 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (37 subgoals):
 1. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 6. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 9. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 37 subgoals...
[PROOF STEP]
case Val\<^sub>1
[PROOF STATE]
proof (state)
this:
P,C,M,pc \<rhd> compE\<^sub>2 (Val v_)
P,C,M \<rhd> compxE\<^sub>2 (Val v_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Val v_))} \<subseteq> I

goal (37 subgoals):
 1. \<And>v a b C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 (Val v); P,C,M \<rhd> compxE\<^sub>2 (Val v) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Val v))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, a, (va # vs, b, C, M, pc + length (compE\<^sub>2 (Val v))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v)) \<and> \<not> caught P pc\<^sub>1 a xa (compxE\<^sub>2 (Val v) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a vs b pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 6. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 9. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 37 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
P,C,M,pc \<rhd> compE\<^sub>2 (Val v_)
P,C,M \<rhd> compxE\<^sub>2 (Val v_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Val v_))} \<subseteq> I

goal (1 subgoal):
 1. (Val v_ = Val v \<longrightarrow> P \<turnstile> (None, a_, (vs, b_, C, M, pc) # frs) -jvm\<rightarrow> (None, a_, (v # vs, b_, C, M, pc + length (compE\<^sub>2 (Val v_))) # frs)) \<and> (Val v_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v_)) \<and> \<not> caught P pc\<^sub>1 a_ xa (compxE\<^sub>2 (Val v_) pc (length vs)) \<and> P \<turnstile> (None, a_, (vs, b_, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a_ vs b_ pc\<^sub>1 frs))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(Val v_ = Val v \<longrightarrow> P \<turnstile> (None, a_, (vs, b_, C, M, pc) # frs) -jvm\<rightarrow> (None, a_, (v # vs, b_, C, M, pc + length (compE\<^sub>2 (Val v_))) # frs)) \<and> (Val v_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Val v_)) \<and> \<not> caught P pc\<^sub>1 a_ xa (compxE\<^sub>2 (Val v_) pc (length vs)) \<and> P \<turnstile> (None, a_, (vs, b_, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a_ vs b_ pc\<^sub>1 frs))

goal (36 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 5. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
A total of 36 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (36 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 5. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
A total of 36 subgoals...
[PROOF STEP]
case Var\<^sub>1
[PROOF STATE]
proof (state)
this:
ls_ ! i_ = v_
i_ < length ls_
P,C,M,pc \<rhd> compE\<^sub>2 (Var i_)
P,C,M \<rhd> compxE\<^sub>2 (Var i_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Var i_))} \<subseteq> I

goal (36 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>ls i v h C M pc va xa vs frs I. \<lbrakk>ls ! i = v; i < length ls; P,C,M,pc \<rhd> compE\<^sub>2 (Var i); P,C,M \<rhd> compxE\<^sub>2 (Var i) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (Var i))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 (Var i))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (Var i) pc (length vs)) \<and> P \<turnstile> (None, h, (vs, ls, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs))
 5. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 8. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
A total of 36 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
ls_ ! i_ = v_
i_ < length ls_
P,C,M,pc \<rhd> compE\<^sub>2 (Var i_)
P,C,M \<rhd> compxE\<^sub>2 (Var i_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (Var i_))} \<subseteq> I

goal (1 subgoal):
 1. (Val v_ = Val v \<longrightarrow> P \<turnstile> (None, h_, (vs, ls_, C, M, pc) # frs) -jvm\<rightarrow> (None, h_, (v # vs, ls_, C, M, pc + length (compE\<^sub>2 (Var i_))) # frs)) \<and> (Val v_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i_)) \<and> \<not> caught P pc\<^sub>1 h_ xa (compxE\<^sub>2 (Var i_) pc (length vs)) \<and> P \<turnstile> (None, h_, (vs, ls_, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h_ vs ls_ pc\<^sub>1 frs))
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(Val v_ = Val v \<longrightarrow> P \<turnstile> (None, h_, (vs, ls_, C, M, pc) # frs) -jvm\<rightarrow> (None, h_, (v # vs, ls_, C, M, pc + length (compE\<^sub>2 (Var i_))) # frs)) \<and> (Val v_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (Var i_)) \<and> \<not> caught P pc\<^sub>1 h_ xa (compxE\<^sub>2 (Var i_) pc (length vs)) \<and> P \<turnstile> (None, h_, (vs, ls_, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h_ vs ls_ pc\<^sub>1 frs))

goal (35 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 35 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (35 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 35 subgoals...
[PROOF STEP]
case (BinOp\<^sub>1 e\<^sub>1 h\<^sub>0 ls\<^sub>0 v\<^sub>1 h\<^sub>1 ls\<^sub>1 e\<^sub>2 v\<^sub>2 h\<^sub>2 ls\<^sub>2 bop w)
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>1; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>1 ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>1)) # ?frs)) \<and> (Val v\<^sub>1 = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e\<^sub>1 ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(h\<^sub>1, ls\<^sub>1)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(h\<^sub>2, ls\<^sub>2)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>2; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>2 ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (?vs, ls\<^sub>1, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>2, (?v # ?vs, ls\<^sub>2, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>2)) # ?frs)) \<and> (Val v\<^sub>2 = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 ?xa (compxE\<^sub>2 e\<^sub>2 ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>1, (?vs, ls\<^sub>1, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>2 ?vs ls\<^sub>2 pc\<^sub>1 ?frs))
binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>w\<rfloor>
P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)
P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I

goal (35 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 35 subgoals...
[PROOF STEP]
let ?pc\<^sub>1 = "pc + length(compE\<^sub>2 e\<^sub>1)"
[PROOF STATE]
proof (state)
goal (35 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 35 subgoals...
[PROOF STEP]
let ?pc\<^sub>2 = "?pc\<^sub>1 + length(compE\<^sub>2 e\<^sub>2)"
[PROOF STATE]
proof (state)
goal (35 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 35 subgoals...
[PROOF STEP]
have IH\<^sub>2: "PROP ?P e\<^sub>2 h\<^sub>1 ls\<^sub>1 (Val v\<^sub>2) h\<^sub>2 ls\<^sub>2 C M ?pc\<^sub>1 v\<^sub>2 xa (v\<^sub>1#vs) frs
                     (I - pcs(compxE\<^sub>2 e\<^sub>1 pc (size vs)))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>P,C,M,pc + length (compE\<^sub>2 e\<^sub>1) \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs)) / I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs)),length (v\<^sub>1 # vs); {pc + length (compE\<^sub>2 e\<^sub>1)..<pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs))\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v\<^sub>2 \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v\<^sub>2 # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc + length (compE\<^sub>2 e\<^sub>1). pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs))) \<and> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1 # vs) ls\<^sub>2 pc\<^sub>1 frs))
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<lbrakk>P,C,M,pc + length (compE\<^sub>2 e\<^sub>1) \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs)) / I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs)),length (v\<^sub>1 # vs); {pc + length (compE\<^sub>2 e\<^sub>1)..<pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs))\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v\<^sub>2 \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v\<^sub>2 # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc + length (compE\<^sub>2 e\<^sub>1). pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs))) \<and> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1 # vs) ls\<^sub>2 pc\<^sub>1 frs))

goal (35 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 35 subgoals...
[PROOF STEP]
have "P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow>
             (None,h\<^sub>1,(v\<^sub>1#vs,ls\<^sub>1,C,M,?pc\<^sub>1)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)
[PROOF STEP]
using BinOp\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>1; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>1 ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>1)) # ?frs)) \<and> (Val v\<^sub>1 = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e\<^sub>1 ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(h\<^sub>1, ls\<^sub>1)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(h\<^sub>2, ls\<^sub>2)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>2; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>2 ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (?vs, ls\<^sub>1, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>2, (?v # ?vs, ls\<^sub>2, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>2)) # ?frs)) \<and> (Val v\<^sub>2 = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 ?xa (compxE\<^sub>2 e\<^sub>2 ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>1, (?vs, ls\<^sub>1, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>2 ?vs ls\<^sub>2 pc\<^sub>1 ?frs))
binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>w\<rfloor>
P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)
P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)

goal (35 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 35 subgoals...
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)

goal (35 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 35 subgoals...
[PROOF STEP]
have "P \<turnstile> \<dots> -jvm\<rightarrow> (None,h\<^sub>2,(v\<^sub>2#v\<^sub>1#vs,ls\<^sub>2,C,M,?pc\<^sub>2)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v\<^sub>2 # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)
[PROOF STEP]
using BinOp\<^sub>1.prems IH\<^sub>2
[PROOF STATE]
proof (prove)
using this:
P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)
P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I
\<lbrakk>P,C,M,pc + length (compE\<^sub>2 e\<^sub>1) \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs)) / I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs)),length (v\<^sub>1 # vs); {pc + length (compE\<^sub>2 e\<^sub>1)..<pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs))\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v\<^sub>2 \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v\<^sub>2 # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc + length (compE\<^sub>2 e\<^sub>1). pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs))) \<and> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1 # vs) ls\<^sub>2 pc\<^sub>1 frs))

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v\<^sub>2 # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v\<^sub>2 # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)

goal (35 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 35 subgoals...
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v\<^sub>2 # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)

goal (35 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 35 subgoals...
[PROOF STEP]
have "P \<turnstile> \<dots> -jvm\<rightarrow> (None,h\<^sub>2,(w#vs,ls\<^sub>2,C,M,?pc\<^sub>2+1)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>2, (v\<^sub>2 # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (w # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) + 1) # frs)
[PROOF STEP]
using BinOp\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>1; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>1 ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>1)) # ?frs)) \<and> (Val v\<^sub>1 = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e\<^sub>1 ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(h\<^sub>1, ls\<^sub>1)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(h\<^sub>2, ls\<^sub>2)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>2; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>2 ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (?vs, ls\<^sub>1, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>2, (?v # ?vs, ls\<^sub>2, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>2)) # ?frs)) \<and> (Val v\<^sub>2 = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 ?xa (compxE\<^sub>2 e\<^sub>2 ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>1, (?vs, ls\<^sub>1, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>2 ?vs ls\<^sub>2 pc\<^sub>1 ?frs))
binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>w\<rfloor>
P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)
P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>2, (v\<^sub>2 # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (w # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) + 1) # frs)
[PROOF STEP]
by(cases bop) auto
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>2, (v\<^sub>2 # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (w # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) + 1) # frs)

goal (35 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 v\<^sub>2 ab bb bop v C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); binop (bop, v\<^sub>1, v\<^sub>2) = \<lfloor>v\<rfloor>; P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 7. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 35 subgoals...
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (w # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) + 1) # frs)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (w # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) + 1) # frs)

goal (1 subgoal):
 1. (Val w = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val w = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs))
[PROOF STEP]
by (auto split: bop.splits simp:add.assoc)
[PROOF STATE]
proof (state)
this:
(Val w = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (Val w = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs))

goal (34 subgoals):
 1. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 3. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 6. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 34 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (34 subgoals):
 1. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 3. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 6. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 34 subgoals...
[PROOF STEP]
case BinOpThrow\<^sub>1\<^sub>1
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1_,(a___, b___)\<rangle> \<Rightarrow> \<langle>throw e_,(a_, b_)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>1_; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>1_ ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>1_)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (throw e_ = Val ?v \<longrightarrow> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, a_, (?v # ?vs, b_, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>1_)) # ?frs)) \<and> (throw e_ = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>1_) \<and> \<not> caught P pc\<^sub>1 a_ ?xa (compxE\<^sub>2 e\<^sub>1_ ?pc (length ?vs)) \<and> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa a_ ?vs b_ pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1_ \<guillemotleft>bop_\<guillemotright> e\<^sub>2_)
P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1_ \<guillemotleft>bop_\<guillemotright> e\<^sub>2_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<^sub>1_ \<guillemotleft>bop_\<guillemotright> e\<^sub>2_))} \<subseteq> I

goal (34 subgoals):
 1. \<And>e\<^sub>1 a b e aa ba bop e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 3. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 6. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 34 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1_,(a___, b___)\<rangle> \<Rightarrow> \<langle>throw e_,(a_, b_)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>1_; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>1_ ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>1_)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (throw e_ = Val ?v \<longrightarrow> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, a_, (?v # ?vs, b_, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>1_)) # ?frs)) \<and> (throw e_ = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>1_) \<and> \<not> caught P pc\<^sub>1 a_ ?xa (compxE\<^sub>2 e\<^sub>1_ ?pc (length ?vs)) \<and> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa a_ ?vs b_ pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1_ \<guillemotleft>bop_\<guillemotright> e\<^sub>2_)
P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1_ \<guillemotleft>bop_\<guillemotright> e\<^sub>2_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<^sub>1_ \<guillemotleft>bop_\<guillemotright> e\<^sub>2_))} \<subseteq> I

goal (1 subgoal):
 1. (throw e_ = Val v \<longrightarrow> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> (None, a_, (v # vs, b_, C, M, pc + length (compE\<^sub>2 (e\<^sub>1_ \<guillemotleft>bop_\<guillemotright> e\<^sub>2_))) # frs)) \<and> (throw e_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1_ \<guillemotleft>bop_\<guillemotright> e\<^sub>2_)) \<and> \<not> caught P pc\<^sub>1 a_ xa (compxE\<^sub>2 (e\<^sub>1_ \<guillemotleft>bop_\<guillemotright> e\<^sub>2_) pc (length vs)) \<and> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a_ vs b_ pc\<^sub>1 frs))
[PROOF STEP]
by(fastforce)
[PROOF STATE]
proof (state)
this:
(throw e_ = Val v \<longrightarrow> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> (None, a_, (v # vs, b_, C, M, pc + length (compE\<^sub>2 (e\<^sub>1_ \<guillemotleft>bop_\<guillemotright> e\<^sub>2_))) # frs)) \<and> (throw e_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1_ \<guillemotleft>bop_\<guillemotright> e\<^sub>2_)) \<and> \<not> caught P pc\<^sub>1 a_ xa (compxE\<^sub>2 (e\<^sub>1_ \<guillemotleft>bop_\<guillemotright> e\<^sub>2_) pc (length vs)) \<and> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a_ vs b_ pc\<^sub>1 frs))

goal (33 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 5. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 33 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (33 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 5. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 33 subgoals...
[PROOF STEP]
case (BinOpThrow\<^sub>2\<^sub>1 e\<^sub>1 h\<^sub>0 ls\<^sub>0 v\<^sub>1 h\<^sub>1 ls\<^sub>1 e\<^sub>2 e h\<^sub>2 ls\<^sub>2 bop)
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>1; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>1 ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>1)) # ?frs)) \<and> (Val v\<^sub>1 = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e\<^sub>1 ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(h\<^sub>1, ls\<^sub>1)\<rangle> \<Rightarrow> \<langle>throw e,(h\<^sub>2, ls\<^sub>2)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>2; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>2 ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (throw e = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (?vs, ls\<^sub>1, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>2, (?v # ?vs, ls\<^sub>2, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>2)) # ?frs)) \<and> (throw e = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 ?xa (compxE\<^sub>2 e\<^sub>2 ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>1, (?vs, ls\<^sub>1, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>2 ?vs ls\<^sub>2 pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)
P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I

goal (33 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 5. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 33 subgoals...
[PROOF STEP]
let ?pc = "pc + length(compE\<^sub>2 e\<^sub>1)"
[PROOF STATE]
proof (state)
goal (33 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 5. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 33 subgoals...
[PROOF STEP]
let ?\<sigma>\<^sub>1 = "(None,h\<^sub>1,(v\<^sub>1#vs,ls\<^sub>1,C,M,?pc)#frs)"
[PROOF STATE]
proof (state)
goal (33 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 5. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 33 subgoals...
[PROOF STEP]
have 1: "P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow> ?\<sigma>\<^sub>1"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)
[PROOF STEP]
using BinOpThrow\<^sub>2\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>1; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>1 ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>1)) # ?frs)) \<and> (Val v\<^sub>1 = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e\<^sub>1 ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(h\<^sub>1, ls\<^sub>1)\<rangle> \<Rightarrow> \<langle>throw e,(h\<^sub>2, ls\<^sub>2)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>2; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>2 ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (throw e = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (?vs, ls\<^sub>1, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>2, (?v # ?vs, ls\<^sub>2, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>2)) # ?frs)) \<and> (throw e = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 ?xa (compxE\<^sub>2 e\<^sub>2 ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>1, (?vs, ls\<^sub>1, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>2 ?vs ls\<^sub>2 pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)
P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)

goal (33 subgoals):
 1. \<And>e\<^sub>1 a b v\<^sub>1 aa ba e\<^sub>2 e ab bb bop C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v\<^sub>1 = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v\<^sub>1 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 2. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 5. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 33 subgoals...
[PROOF STEP]
show ?case (is "?N \<and> (?eq \<longrightarrow> (\<exists>pc\<^sub>2. ?H pc\<^sub>2))")
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (throw e = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs))
[PROOF STEP]
proof
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. throw e = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)
 2. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs)
[PROOF STEP]
show ?N
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. throw e = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
throw e = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)

goal (1 subgoal):
 1. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs)
[PROOF STEP]
{
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs)
[PROOF STEP]
assume ?eq
[PROOF STATE]
proof (state)
this:
throw e = Throw xa

goal (1 subgoal):
 1. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
throw e = Throw xa

goal (1 subgoal):
 1. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs)
[PROOF STEP]
have "PROP ?P e\<^sub>2 h\<^sub>1 ls\<^sub>1 (throw e) h\<^sub>2 ls\<^sub>2 C M ?pc v xa (v\<^sub>1#vs) frs
                     (I - pcs(compxE\<^sub>2 e\<^sub>1 pc (size vs)))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>P,C,M,pc + length (compE\<^sub>2 e\<^sub>1) \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs)) / I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs)),length (v\<^sub>1 # vs); {pc + length (compE\<^sub>2 e\<^sub>1)..<pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs))\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc + length (compE\<^sub>2 e\<^sub>1). pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs))) \<and> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1 # vs) ls\<^sub>2 pc\<^sub>1 frs))
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<lbrakk>P,C,M,pc + length (compE\<^sub>2 e\<^sub>1) \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs)) / I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs)),length (v\<^sub>1 # vs); {pc + length (compE\<^sub>2 e\<^sub>1)..<pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs))\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc + length (compE\<^sub>2 e\<^sub>1). pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs))) \<and> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1 # vs) ls\<^sub>2 pc\<^sub>1 frs))

goal (1 subgoal):
 1. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
throw e = Throw xa
\<lbrakk>P,C,M,pc + length (compE\<^sub>2 e\<^sub>1) \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs)) / I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs)),length (v\<^sub>1 # vs); {pc + length (compE\<^sub>2 e\<^sub>1)..<pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs))\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc + length (compE\<^sub>2 e\<^sub>1). pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs))) \<and> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1 # vs) ls\<^sub>2 pc\<^sub>1 frs))
[PROOF STEP]
obtain pc\<^sub>2 where
        pc\<^sub>2: "?pc \<le> pc\<^sub>2 \<and> pc\<^sub>2 < ?pc + size(compE\<^sub>2 e\<^sub>2) \<and>
              \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 ?pc (size vs + 1))" and
        2: "P \<turnstile> ?\<sigma>\<^sub>1 -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1#vs) ls\<^sub>2 pc\<^sub>2 frs"
[PROOF STATE]
proof (prove)
using this:
throw e = Throw xa
\<lbrakk>P,C,M,pc + length (compE\<^sub>2 e\<^sub>1) \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs)) / I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs)),length (v\<^sub>1 # vs); {pc + length (compE\<^sub>2 e\<^sub>1)..<pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs))\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc + length (compE\<^sub>2 e\<^sub>1). pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs))) \<and> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1 # vs) ls\<^sub>2 pc\<^sub>1 frs))

goal (1 subgoal):
 1. (\<And>pc\<^sub>2. \<lbrakk>pc + length (compE\<^sub>2 e\<^sub>1) \<le> pc\<^sub>2 \<and> pc\<^sub>2 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length vs + 1)); P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1 # vs) ls\<^sub>2 pc\<^sub>2 frs\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using BinOpThrow\<^sub>2\<^sub>1.prems
[PROOF STATE]
proof (prove)
using this:
throw e = Throw xa
\<lbrakk>P,C,M,pc + length (compE\<^sub>2 e\<^sub>1) \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs)) / I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs)),length (v\<^sub>1 # vs); {pc + length (compE\<^sub>2 e\<^sub>1)..<pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs))\<rbrakk> \<Longrightarrow> (throw e = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v # v\<^sub>1 # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc + length (compE\<^sub>2 e\<^sub>1). pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (v\<^sub>1 # vs))) \<and> P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1 # vs) ls\<^sub>2 pc\<^sub>1 frs))
P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)
P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I

goal (1 subgoal):
 1. (\<And>pc\<^sub>2. \<lbrakk>pc + length (compE\<^sub>2 e\<^sub>1) \<le> pc\<^sub>2 \<and> pc\<^sub>2 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length vs + 1)); P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1 # vs) ls\<^sub>2 pc\<^sub>2 frs\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
pc + length (compE\<^sub>2 e\<^sub>1) \<le> pc\<^sub>2 \<and> pc\<^sub>2 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length vs + 1))
P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1 # vs) ls\<^sub>2 pc\<^sub>2 frs

goal (1 subgoal):
 1. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs)
[PROOF STEP]
have 3: "P \<turnstile> ?\<sigma>\<^sub>1 -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs
[PROOF STEP]
using 2 BinOpThrow\<^sub>2\<^sub>1.prems pc\<^sub>2
[PROOF STATE]
proof (prove)
using this:
P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (v\<^sub>1 # vs) ls\<^sub>2 pc\<^sub>2 frs
P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)
P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))} \<subseteq> I
pc + length (compE\<^sub>2 e\<^sub>1) \<le> pc\<^sub>2 \<and> pc\<^sub>2 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length vs + 1))

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs
[PROOF STEP]
by(auto simp:handle_Cons)
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>1, (v\<^sub>1 # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs

goal (1 subgoal):
 1. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs)
[PROOF STEP]
have "?H pc\<^sub>2"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. pc \<le> pc\<^sub>2 \<and> pc\<^sub>2 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs
[PROOF STEP]
using pc\<^sub>2 jvm_trans[OF 1 3]
[PROOF STATE]
proof (prove)
using this:
pc + length (compE\<^sub>2 e\<^sub>1) \<le> pc\<^sub>2 \<and> pc\<^sub>2 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length vs + 1))
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs

goal (1 subgoal):
 1. pc \<le> pc\<^sub>2 \<and> pc\<^sub>2 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
pc \<le> pc\<^sub>2 \<and> pc\<^sub>2 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs

goal (1 subgoal):
 1. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs)
[PROOF STEP]
hence "\<exists>pc\<^sub>2. ?H pc\<^sub>2"
[PROOF STATE]
proof (prove)
using this:
pc \<le> pc\<^sub>2 \<and> pc\<^sub>2 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs

goal (1 subgoal):
 1. \<exists>pc\<^sub>2\<ge>pc. pc\<^sub>2 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
\<exists>pc\<^sub>2\<ge>pc. pc\<^sub>2 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs

goal (1 subgoal):
 1. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs)
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
throw e = Throw xa \<Longrightarrow> \<exists>pc\<^sub>2\<ge>pc. pc\<^sub>2 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs

goal (1 subgoal):
 1. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs)
[PROOF STEP]
thus "?eq \<longrightarrow> (\<exists>pc\<^sub>2. ?H pc\<^sub>2)"
[PROOF STATE]
proof (prove)
using this:
throw e = Throw xa \<Longrightarrow> \<exists>pc\<^sub>2\<ge>pc. pc\<^sub>2 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs

goal (1 subgoal):
 1. throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>2\<ge>pc. pc\<^sub>2 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs)
[PROOF STEP]
by iprover
[PROOF STATE]
proof (state)
this:
throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>2\<ge>pc. pc\<^sub>2 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>2 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>2 frs)

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(throw e = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (v # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2))) # frs)) \<and> (throw e = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 (e\<^sub>1 \<guillemotleft>bop\<guillemotright> e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs ls\<^sub>2 pc\<^sub>1 frs))

goal (32 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 4. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
A total of 32 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (32 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 4. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
A total of 32 subgoals...
[PROOF STEP]
case (FAcc\<^sub>1 e h\<^sub>0 ls\<^sub>0 a h\<^sub>1 ls\<^sub>1 C fs F D w)
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>addr a,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (addr a = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (addr a = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
h\<^sub>1 a = \<lfloor>(C__, fs)\<rfloor>
fs (F, D) = \<lfloor>w\<rfloor>
P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D})
P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I

goal (32 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 4. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
A total of 32 subgoals...
[PROOF STEP]
let ?pc = "pc + length(compE\<^sub>2 e)"
[PROOF STATE]
proof (state)
goal (32 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 4. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
A total of 32 subgoals...
[PROOF STEP]
have "P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow>
             (None,h\<^sub>1,(Addr a#vs,ls\<^sub>1,C,M,?pc)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)
[PROOF STEP]
using FAcc\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>addr a,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (addr a = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (addr a = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
h\<^sub>1 a = \<lfloor>(C__, fs)\<rfloor>
fs (F, D) = \<lfloor>w\<rfloor>
P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D})
P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)

goal (32 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 4. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
A total of 32 subgoals...
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)

goal (32 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 4. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
A total of 32 subgoals...
[PROOF STEP]
have "P \<turnstile> \<dots> -jvm\<rightarrow> (None,h\<^sub>1,(w#vs,ls\<^sub>1,C,M,?pc+1)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (w # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)
[PROOF STEP]
using FAcc\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>addr a,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (addr a = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (addr a = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
h\<^sub>1 a = \<lfloor>(C__, fs)\<rfloor>
fs (F, D) = \<lfloor>w\<rfloor>
P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D})
P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (w # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (w # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)

goal (32 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa h ls C fs F D v Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(h, ls)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (v # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); h aa = \<lfloor>(C, fs)\<rfloor>; fs (F, D) = \<lfloor>v\<rfloor>; P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,Ca,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, Ca, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h vs ls pc\<^sub>1 frs))
 4. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
A total of 32 subgoals...
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (w # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (w # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e) + 1) # frs)

goal (1 subgoal):
 1. (Val w = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val w = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs))
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(Val w = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (Val w = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs))

goal (31 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 31 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (31 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 31 subgoals...
[PROOF STEP]
case (FAccNull\<^sub>1 e h\<^sub>0 ls\<^sub>0 h\<^sub>1 ls\<^sub>1 F D)
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>null,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (null = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (null = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D})
P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I

goal (31 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 31 subgoals...
[PROOF STEP]
let ?pc = "pc + length(compE\<^sub>2 e)"
[PROOF STATE]
proof (state)
goal (31 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 31 subgoals...
[PROOF STEP]
let ?xa = "addr_of_sys_xcpt NullPointer"
[PROOF STATE]
proof (state)
goal (31 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 31 subgoals...
[PROOF STEP]
have "P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow>
             (None,h\<^sub>1,(Null#vs,ls\<^sub>1,C,M,?pc)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)
[PROOF STEP]
using FAccNull\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>null,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (null = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (null = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D})
P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)

goal (31 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 31 subgoals...
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)

goal (31 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 31 subgoals...
[PROOF STEP]
have "P \<turnstile> \<dots> -jvm\<rightarrow> handle P C M ?xa h\<^sub>1 (Null#vs) ls\<^sub>1 ?pc frs"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt NullPointer) h\<^sub>1 (Null # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
using FAccNull\<^sub>1.prems
[PROOF STATE]
proof (prove)
using this:
P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D})
P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt NullPointer) h\<^sub>1 (Null # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
by(fastforce simp:split_beta handle_def simp del: split_paired_Ex)
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt NullPointer) h\<^sub>1 (Null # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs

goal (31 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 31 subgoals...
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>1, (Null # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt NullPointer) h\<^sub>1 (Null # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs

goal (31 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 31 subgoals...
[PROOF STEP]
have "handle P C M ?xa h\<^sub>1 (Null#vs) ls\<^sub>1 ?pc frs =
             handle P C M ?xa h\<^sub>1 vs ls\<^sub>1 ?pc frs"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. handle P C M (addr_of_sys_xcpt NullPointer) h\<^sub>1 (Null # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs = handle P C M (addr_of_sys_xcpt NullPointer) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
using FAccNull\<^sub>1.prems
[PROOF STATE]
proof (prove)
using this:
P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D})
P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I

goal (1 subgoal):
 1. handle P C M (addr_of_sys_xcpt NullPointer) h\<^sub>1 (Null # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs = handle P C M (addr_of_sys_xcpt NullPointer) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
by(auto simp add:handle_Cons)
[PROOF STATE]
proof (state)
this:
handle P C M (addr_of_sys_xcpt NullPointer) h\<^sub>1 (Null # vs) ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs = handle P C M (addr_of_sys_xcpt NullPointer) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs

goal (31 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 31 subgoals...
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt NullPointer) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M (addr_of_sys_xcpt NullPointer) h\<^sub>1 vs ls\<^sub>1 (pc + length (compE\<^sub>2 e)) frs

goal (1 subgoal):
 1. (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs))
[PROOF STEP]
by (auto intro: exI[where x = ?pc])
[PROOF STATE]
proof (state)
this:
(THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>1 pc\<^sub>1 frs))

goal (30 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 10. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
A total of 30 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (30 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 10. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
A total of 30 subgoals...
[PROOF STEP]
case FAccThrow\<^sub>1
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e_,(a___, b___)\<rangle> \<Rightarrow> \<langle>throw e'_,(a_, b_)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e_; P,?C,?M \<rhd> compxE\<^sub>2 e_ ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e_)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (throw e'_ = Val ?v \<longrightarrow> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, a_, (?v # ?vs, b_, ?C, ?M, ?pc + length (compE\<^sub>2 e_)) # ?frs)) \<and> (throw e'_ = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e_) \<and> \<not> caught P pc\<^sub>1 a_ ?xa (compxE\<^sub>2 e_ ?pc (length ?vs)) \<and> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa a_ ?vs b_ pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (e_\<bullet>F_{D_})
P,C,M \<rhd> compxE\<^sub>2 (e_\<bullet>F_{D_}) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e_\<bullet>F_{D_}))} \<subseteq> I

goal (30 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e a b e' aa ba F D C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<bullet>F{D}); P,C,M \<rhd> compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>F{D}))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<bullet>F{D}))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>F{D})) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>F{D}) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 8. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 9. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 10. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
A total of 30 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e_,(a___, b___)\<rangle> \<Rightarrow> \<langle>throw e'_,(a_, b_)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e_; P,?C,?M \<rhd> compxE\<^sub>2 e_ ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e_)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (throw e'_ = Val ?v \<longrightarrow> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, a_, (?v # ?vs, b_, ?C, ?M, ?pc + length (compE\<^sub>2 e_)) # ?frs)) \<and> (throw e'_ = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e_) \<and> \<not> caught P pc\<^sub>1 a_ ?xa (compxE\<^sub>2 e_ ?pc (length ?vs)) \<and> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa a_ ?vs b_ pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (e_\<bullet>F_{D_})
P,C,M \<rhd> compxE\<^sub>2 (e_\<bullet>F_{D_}) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e_\<bullet>F_{D_}))} \<subseteq> I

goal (1 subgoal):
 1. (throw e'_ = Val v \<longrightarrow> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> (None, a_, (v # vs, b_, C, M, pc + length (compE\<^sub>2 (e_\<bullet>F_{D_}))) # frs)) \<and> (throw e'_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e_\<bullet>F_{D_})) \<and> \<not> caught P pc\<^sub>1 a_ xa (compxE\<^sub>2 (e_\<bullet>F_{D_}) pc (length vs)) \<and> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a_ vs b_ pc\<^sub>1 frs))
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
(throw e'_ = Val v \<longrightarrow> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> (None, a_, (v # vs, b_, C, M, pc + length (compE\<^sub>2 (e_\<bullet>F_{D_}))) # frs)) \<and> (throw e'_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e_\<bullet>F_{D_})) \<and> \<not> caught P pc\<^sub>1 a_ xa (compxE\<^sub>2 (e_\<bullet>F_{D_}) pc (length vs)) \<and> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a_ vs b_ pc\<^sub>1 frs))

goal (29 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 9. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 29 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (29 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 9. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 29 subgoals...
[PROOF STEP]
case (LAss\<^sub>1 e h\<^sub>0 ls\<^sub>0 w h\<^sub>1 ls\<^sub>1 i ls\<^sub>2)
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>Val w,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val w = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (Val w = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
i < length ls\<^sub>1
ls\<^sub>2 = ls\<^sub>1[i := w]
P,C,M,pc \<rhd> compE\<^sub>2 (i:=e)
P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I

goal (29 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 9. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 29 subgoals...
[PROOF STEP]
let ?pc = "pc + length(compE\<^sub>2 e)"
[PROOF STATE]
proof (state)
goal (29 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 9. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 29 subgoals...
[PROOF STEP]
have "P \<turnstile> (None,h\<^sub>0,(vs,ls\<^sub>0,C,M,pc)#frs) -jvm\<rightarrow>
             (None,h\<^sub>1,(w#vs,ls\<^sub>1,C,M,?pc)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (w # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)
[PROOF STEP]
using LAss\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>Val w,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val w = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (Val w = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
i < length ls\<^sub>1
ls\<^sub>2 = ls\<^sub>1[i := w]
P,C,M,pc \<rhd> compE\<^sub>2 (i:=e)
P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (w # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (w # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)

goal (29 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 9. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 29 subgoals...
[PROOF STEP]
also
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (w # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs)

goal (29 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 9. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 29 subgoals...
[PROOF STEP]
have "P \<turnstile> \<dots> -jvm\<rightarrow> (None,h\<^sub>1,(Unit#vs,ls\<^sub>2,C,M,?pc+2)#frs)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (w # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Unit # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e) + 2) # frs)
[PROOF STEP]
using LAss\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>Val w,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val w = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (Val w = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
i < length ls\<^sub>1
ls\<^sub>2 = ls\<^sub>1[i := w]
P,C,M,pc \<rhd> compE\<^sub>2 (i:=e)
P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I

goal (1 subgoal):
 1. P \<turnstile> (None, h\<^sub>1, (w # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Unit # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e) + 2) # frs)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
P \<turnstile> (None, h\<^sub>1, (w # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e)) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Unit # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e) + 2) # frs)

goal (29 subgoals):
 1. \<And>e a b v h ls i ls' C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(h, ls)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls pc\<^sub>1 frs)); i < length ls; ls' = ls[i := v]; P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, h, (va # vs, ls', C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h vs ls' pc\<^sub>1 frs))
 2. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 7. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 8. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 9. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 10. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
A total of 29 subgoals...
[PROOF STEP]
finally
[PROOF STATE]
proof (chain)
picking this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Unit # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e) + 2) # frs)
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Unit # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e) + 2) # frs)

goal (1 subgoal):
 1. (unit = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>2 pc\<^sub>1 frs))
[PROOF STEP]
using LAss\<^sub>1
[PROOF STATE]
proof (prove)
using this:
P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (Unit # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e) + 2) # frs)
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>Val w,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e; P,?C,?M \<rhd> compxE\<^sub>2 e ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val w = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e)) # ?frs)) \<and> (Val w = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
i < length ls\<^sub>1
ls\<^sub>2 = ls\<^sub>1[i := w]
P,C,M,pc \<rhd> compE\<^sub>2 (i:=e)
P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I

goal (1 subgoal):
 1. (unit = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>2 pc\<^sub>1 frs))
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(unit = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>1, (v # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>0, (vs, ls\<^sub>0, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>1 vs ls\<^sub>2 pc\<^sub>1 frs))

goal (28 subgoals):
 1. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 8. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 9. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba i T C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 {i:T; e}; P,C,M \<rhd> compxE\<^sub>2 {i:T; e} pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 {i:T; e})} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 {i:T; e})) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 {i:T; e}) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 {i:T; e} pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 28 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (28 subgoals):
 1. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 8. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 9. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba i T C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 {i:T; e}; P,C,M \<rhd> compxE\<^sub>2 {i:T; e} pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 {i:T; e})} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 {i:T; e})) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 {i:T; e}) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 {i:T; e} pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 28 subgoals...
[PROOF STEP]
case LAssThrow\<^sub>1
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e_,(a___, b___)\<rangle> \<Rightarrow> \<langle>throw e'_,(a_, b_)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e_; P,?C,?M \<rhd> compxE\<^sub>2 e_ ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e_)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (throw e'_ = Val ?v \<longrightarrow> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, a_, (?v # ?vs, b_, ?C, ?M, ?pc + length (compE\<^sub>2 e_)) # ?frs)) \<and> (throw e'_ = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e_) \<and> \<not> caught P pc\<^sub>1 a_ ?xa (compxE\<^sub>2 e_ ?pc (length ?vs)) \<and> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa a_ ?vs b_ pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (i_:=e_)
P,C,M \<rhd> compxE\<^sub>2 (i_:=e_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (i_:=e_))} \<subseteq> I

goal (28 subgoals):
 1. \<And>e a b e' aa ba i C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (i:=e); P,C,M \<rhd> compxE\<^sub>2 (i:=e) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (i:=e))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (i:=e))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i:=e)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (i:=e) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 5. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 6. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 7. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 8. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 9. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 10. \<And>e a b e' aa ba i T C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 {i:T; e}; P,C,M \<rhd> compxE\<^sub>2 {i:T; e} pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 {i:T; e})} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 {i:T; e})) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 {i:T; e}) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 {i:T; e} pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
A total of 28 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e_,(a___, b___)\<rangle> \<Rightarrow> \<langle>throw e'_,(a_, b_)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e_; P,?C,?M \<rhd> compxE\<^sub>2 e_ ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e_)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (throw e'_ = Val ?v \<longrightarrow> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, a_, (?v # ?vs, b_, ?C, ?M, ?pc + length (compE\<^sub>2 e_)) # ?frs)) \<and> (throw e'_ = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e_) \<and> \<not> caught P pc\<^sub>1 a_ ?xa (compxE\<^sub>2 e_ ?pc (length ?vs)) \<and> P \<turnstile> (None, a___, (?vs, b___, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa a_ ?vs b_ pc\<^sub>1 ?frs))
P,C,M,pc \<rhd> compE\<^sub>2 (i_:=e_)
P,C,M \<rhd> compxE\<^sub>2 (i_:=e_) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (i_:=e_))} \<subseteq> I

goal (1 subgoal):
 1. (throw e'_ = Val v \<longrightarrow> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> (None, a_, (v # vs, b_, C, M, pc + length (compE\<^sub>2 (i_:=e_))) # frs)) \<and> (throw e'_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i_:=e_)) \<and> \<not> caught P pc\<^sub>1 a_ xa (compxE\<^sub>2 (i_:=e_) pc (length vs)) \<and> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a_ vs b_ pc\<^sub>1 frs))
[PROOF STEP]
by fastforce
[PROOF STATE]
proof (state)
this:
(throw e'_ = Val v \<longrightarrow> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> (None, a_, (v # vs, b_, C, M, pc + length (compE\<^sub>2 (i_:=e_))) # frs)) \<and> (throw e'_ = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (i_:=e_)) \<and> \<not> caught P pc\<^sub>1 a_ xa (compxE\<^sub>2 (i_:=e_) pc (length vs)) \<and> P \<turnstile> (None, a___, (vs, b___, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa a_ vs b_ pc\<^sub>1 frs))

goal (27 subgoals):
 1. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 7. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 8. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i T C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 {i:T; e}; P,C,M \<rhd> compxE\<^sub>2 {i:T; e} pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 {i:T; e})} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 {i:T; e})) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 {i:T; e}) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 {i:T; e} pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>0 a b v aa ba e\<^sub>1 e\<^sub>2 ab bb C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>0,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>0; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>0 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>0)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>0)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>0) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>0 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(aa, ba)\<rangle> \<Rightarrow> \<langle>e\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (e\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>0;; e\<^sub>1); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>0;; e\<^sub>1) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e\<^sub>2 = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1))) # frs)) \<and> (e\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>0;; e\<^sub>1) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 27 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (27 subgoals):
 1. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 7. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 8. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i T C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 {i:T; e}; P,C,M \<rhd> compxE\<^sub>2 {i:T; e} pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 {i:T; e})} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 {i:T; e})) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 {i:T; e}) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 {i:T; e} pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>0 a b v aa ba e\<^sub>1 e\<^sub>2 ab bb C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>0,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>0; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>0 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>0)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>0)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>0) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>0 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(aa, ba)\<rangle> \<Rightarrow> \<langle>e\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (e\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>0;; e\<^sub>1); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>0;; e\<^sub>1) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e\<^sub>2 = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1))) # frs)) \<and> (e\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>0;; e\<^sub>1) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 27 subgoals...
[PROOF STEP]
case (FAss\<^sub>1 e\<^sub>1 h\<^sub>0 ls\<^sub>0 a h\<^sub>1 ls\<^sub>1 e\<^sub>2 w h\<^sub>2 ls\<^sub>2 C fs fs' F D h\<^sub>2')
[PROOF STATE]
proof (state)
this:
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(h\<^sub>0, ls\<^sub>0)\<rangle> \<Rightarrow> \<langle>addr a,(h\<^sub>1, ls\<^sub>1)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>1; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>1 ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (addr a = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>1, (?v # ?vs, ls\<^sub>1, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>1)) # ?frs)) \<and> (addr a = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 h\<^sub>1 ?xa (compxE\<^sub>2 e\<^sub>1 ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>0, (?vs, ls\<^sub>0, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>1 ?vs ls\<^sub>1 pc\<^sub>1 ?frs))
P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(h\<^sub>1, ls\<^sub>1)\<rangle> \<Rightarrow> \<langle>Val w,(h\<^sub>2, ls\<^sub>2)\<rangle>
\<lbrakk>P,?C,?M,?pc \<rhd> compE\<^sub>2 e\<^sub>2; P,?C,?M \<rhd> compxE\<^sub>2 e\<^sub>2 ?pc (length ?vs) / ?I,length ?vs; {?pc..<?pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> ?I\<rbrakk> \<Longrightarrow> (Val w = Val ?v \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (?vs, ls\<^sub>1, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> (None, h\<^sub>2, (?v # ?vs, ls\<^sub>2, ?C, ?M, ?pc + length (compE\<^sub>2 e\<^sub>2)) # ?frs)) \<and> (Val w = Throw ?xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>?pc. pc\<^sub>1 < ?pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 ?xa (compxE\<^sub>2 e\<^sub>2 ?pc (length ?vs)) \<and> P \<turnstile> (None, h\<^sub>1, (?vs, ls\<^sub>1, ?C, ?M, ?pc) # ?frs) -jvm\<rightarrow> handle P ?C ?M ?xa h\<^sub>2 ?vs ls\<^sub>2 pc\<^sub>1 ?frs))
h\<^sub>2 a = \<lfloor>(C__, fs)\<rfloor>
fs' = fs((F, D) \<mapsto> w)
h\<^sub>2' = h\<^sub>2(a \<mapsto> (C__, fs'))
P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)
P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs
{pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I

goal (27 subgoals):
 1. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 7. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 8. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i T C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 {i:T; e}; P,C,M \<rhd> compxE\<^sub>2 {i:T; e} pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 {i:T; e})} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 {i:T; e})) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 {i:T; e}) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 {i:T; e} pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>0 a b v aa ba e\<^sub>1 e\<^sub>2 ab bb C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>0,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>0; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>0 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>0)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>0)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>0) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>0 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(aa, ba)\<rangle> \<Rightarrow> \<langle>e\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (e\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>0;; e\<^sub>1); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>0;; e\<^sub>1) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e\<^sub>2 = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1))) # frs)) \<and> (e\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>0;; e\<^sub>1) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 27 subgoals...
[PROOF STEP]
let ?pc\<^sub>1 = "pc + length(compE\<^sub>2 e\<^sub>1)"
[PROOF STATE]
proof (state)
goal (27 subgoals):
 1. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 7. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 8. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i T C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 {i:T; e}; P,C,M \<rhd> compxE\<^sub>2 {i:T; e} pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 {i:T; e})} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 {i:T; e})) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 {i:T; e}) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 {i:T; e} pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>0 a b v aa ba e\<^sub>1 e\<^sub>2 ab bb C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>0,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>0; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>0 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>0)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>0)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>0) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>0 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(aa, ba)\<rangle> \<Rightarrow> \<langle>e\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (e\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>0;; e\<^sub>1); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>0;; e\<^sub>1) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e\<^sub>2 = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1))) # frs)) \<and> (e\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>0;; e\<^sub>1) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 27 subgoals...
[PROOF STEP]
let ?pc\<^sub>2 = "?pc\<^sub>1 + length(compE\<^sub>2 e\<^sub>2)"
[PROOF STATE]
proof (state)
goal (27 subgoals):
 1. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>Val v,(ab, bb)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 3. \<And>e\<^sub>1 a b e' aa ba F D e\<^sub>2 C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 4. \<And>e\<^sub>1 a b v aa ba e\<^sub>2 e' ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(aa, ba)\<rangle> \<Rightarrow> \<langle>throw e',(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
 5. \<And>e a b e' aa ba M es C Ma pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>throw e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa aa vs ba pc\<^sub>1 frs))
 6. \<And>e a b aa ba es vs ab bb M C Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (null = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(ab, bb)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vsa, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, aa, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vsa bb pc\<^sub>1 frs)); P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (THROW NullPointer = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (THROW NullPointer = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 7. \<And>e a b aa ab ba es vs h\<^sub>2 ls\<^sub>2 C fs M Ts T body D ls\<^sub>2' e' h\<^sub>3 ls\<^sub>3 Ca Ma pc v xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(ab, ba)\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2, ls\<^sub>2)\<rangle>; \<And>C M pc ws xa es' vsa frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vsa) / I,length vsa; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (map Val vs = map Val ws \<longrightarrow> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (rev ws @ vsa, ls\<^sub>2, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (map Val vs = map Val ws @ Throw xa # es' \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxEs\<^sub>2 es pc (length vsa)) \<and> P \<turnstile> (None, ab, (vsa, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vsa ls\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; P\<^sub>1 \<turnstile> C sees M: Ts\<rightarrow>T = body in D; length vs = length Ts; ls\<^sub>2' = Addr aa # vs @ replicate (max_vars body) undefined; P\<^sub>1 \<turnstile>\<^sub>1 \<langle>body,(h\<^sub>2, ls\<^sub>2')\<rangle> \<Rightarrow> \<langle>e',(h\<^sub>3, ls\<^sub>3)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 body; P,C,M \<rhd> compxE\<^sub>2 body pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 body)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vs, ls\<^sub>3, C, M, pc + length (compE\<^sub>2 body)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 body) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 body pc (length vs)) \<and> P \<turnstile> (None, h\<^sub>2, (vs, ls\<^sub>2', C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>3 vs ls\<^sub>3 pc\<^sub>1 frs)); P,Ca,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,Ca,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>3, (v # vsa, ls\<^sub>2, Ca, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 h\<^sub>3 xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, Ca, Ma, pc) # frs) -jvm\<rightarrow> handle P Ca Ma xa h\<^sub>3 vsa ls\<^sub>2 pc\<^sub>1 frs))
 8. \<And>e a b v aa ba es es' ab bb vs ex es\<^sub>2 M C Ma pc va xa vsa frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>es,(aa, ba)\<rangle> [\<Rightarrow>] \<langle>es',(ab, bb)\<rangle>; \<And>C M pc ws xa es'a vs frs I. \<lbrakk>P,C,M,pc \<rhd> compEs\<^sub>2 es; P,C,M \<rhd> compxEs\<^sub>2 es pc (length vs) / I,length vs; {pc..<pc + length (compEs\<^sub>2 es)} \<subseteq> I\<rbrakk> \<Longrightarrow> (es' = map Val ws \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (rev ws @ vs, bb, C, M, pc + length (compEs\<^sub>2 es)) # frs)) \<and> (es' = map Val ws @ Throw xa # es'a \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compEs\<^sub>2 es) \<and> \<not> caught P pc\<^sub>1 ab xa (compxEs\<^sub>2 es pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); es' = map Val vs @ throw ex # es\<^sub>2; P,C,Ma,pc \<rhd> compE\<^sub>2 (e\<bullet>M(es)); P,C,Ma \<rhd> compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa) / I,length vsa; {pc..<pc + length (compE\<^sub>2 (e\<bullet>M(es)))} \<subseteq> I\<rbrakk> \<Longrightarrow> (throw ex = Val va \<longrightarrow> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vsa, bb, C, Ma, pc + length (compE\<^sub>2 (e\<bullet>M(es)))) # frs)) \<and> (throw ex = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<bullet>M(es))) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<bullet>M(es)) pc (length vsa)) \<and> P \<turnstile> (None, a, (vsa, b, C, Ma, pc) # frs) -jvm\<rightarrow> handle P C Ma xa ab vsa bb pc\<^sub>1 frs))
 9. \<And>e a b e' aa ba i T C M pc v xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e,(a, b)\<rangle> \<Rightarrow> \<langle>e',(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e; P,C,M \<rhd> compxE\<^sub>2 e pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e)) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 {i:T; e}; P,C,M \<rhd> compxE\<^sub>2 {i:T; e} pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 {i:T; e})} \<subseteq> I\<rbrakk> \<Longrightarrow> (e' = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (v # vs, ba, C, M, pc + length (compE\<^sub>2 {i:T; e})) # frs)) \<and> (e' = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 {i:T; e}) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 {i:T; e} pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs))
 10. \<And>e\<^sub>0 a b v aa ba e\<^sub>1 e\<^sub>2 ab bb C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>0,(a, b)\<rangle> \<Rightarrow> \<langle>Val v,(aa, ba)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>0; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>0 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>0)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, aa, (va # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>0)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>0) \<and> \<not> caught P pc\<^sub>1 aa xa (compxE\<^sub>2 e\<^sub>0 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa aa vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(aa, ba)\<rangle> \<Rightarrow> \<langle>e\<^sub>2,(ab, bb)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (e\<^sub>2 = Val v \<longrightarrow> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, bb, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (e\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, aa, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs)); P,C,M,pc \<rhd> compE\<^sub>2 (e\<^sub>0;; e\<^sub>1); P,C,M \<rhd> compxE\<^sub>2 (e\<^sub>0;; e\<^sub>1) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1))} \<subseteq> I\<rbrakk> \<Longrightarrow> (e\<^sub>2 = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (va # vs, bb, C, M, pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1))) # frs)) \<and> (e\<^sub>2 = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>0;; e\<^sub>1)) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 (e\<^sub>0;; e\<^sub>1) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs bb pc\<^sub>1 frs))
A total of 27 subgoals...
[PROOF STEP]
have IH\<^sub>2: "PROP ?P e\<^sub>2 h\<^sub>1 ls\<^sub>1 (Val w) h\<^sub>2 ls\<^sub>2 C M ?pc\<^sub>1 w xa (Addr a#vs) frs
                     (I - pcs(compxE\<^sub>2 e\<^sub>1 pc (size vs)))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>P,C,M,pc + length (compE\<^sub>2 e\<^sub>1) \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (Addr a # vs)) / I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs)),length (Addr a # vs); {pc + length (compE\<^sub>2 e\<^sub>1)..<pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs))\<rbrakk> \<Longrightarrow> (Val w = Val w \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (w # Addr a # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val w = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc + length (compE\<^sub>2 e\<^sub>1). pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (Addr a # vs))) \<and> P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (Addr a # vs) ls\<^sub>2 pc\<^sub>1 frs))
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<lbrakk>P,C,M,pc + length (compE\<^sub>2 e\<^sub>1) \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (Addr a # vs)) / I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs)),length (Addr a # vs); {pc + length (compE\<^sub>2 e\<^sub>1)..<pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I - pcs (compxE\<^sub>2 e\<^sub>1 pc (length vs))\<rbrakk> \<Longrightarrow> (Val w = Val w \<longrightarrow> P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (w # Addr a # vs, ls\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val w = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc + length (compE\<^sub>2 e\<^sub>1). pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 (pc + length (compE\<^sub>2 e\<^sub>1)) (length (Addr a # vs))) \<and> P \<turnstile> (None, h\<^sub>1, (Addr a # vs, ls\<^sub>1, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 (Addr a # vs) ls\<^sub>2 pc\<^sub>1 frs))

goal (27 subgoals):
 1. \<And>e\<^sub>1 a b aa ab ba e\<^sub>2 v h\<^sub>2 l\<^sub>2 C fs fs' F D h\<^sub>2' Ca M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>addr aa,(ab, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (addr aa = Val v \<longrightarrow> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> (None, ab, (v # vs, ba, C, M, pc + length (compE\<^sub>2 e\<^sub>1)) # frs)) \<and> (addr aa = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>1) \<and> \<not> caught P pc\<^sub>1 ab xa (compxE\<^sub>2 e\<^sub>1 pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa ab vs ba pc\<^sub>1 frs)); P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>2,(ab, ba)\<rangle> \<Rightarrow> \<langle>Val v,(h\<^sub>2, l\<^sub>2)\<rangle>; \<And>C M pc va xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>2; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>2 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>2)} \<subseteq> I\<rbrakk> \<Longrightarrow> (Val v = Val va \<longrightarrow> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2, (va # vs, l\<^sub>2, C, M, pc + length (compE\<^sub>2 e\<^sub>2)) # frs)) \<and> (Val v = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 e\<^sub>2) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2 xa (compxE\<^sub>2 e\<^sub>2 pc (length vs)) \<and> P \<turnstile> (None, ab, (vs, ba, C, M, pc) # frs) -jvm\<rightarrow> handle P C M xa h\<^sub>2 vs l\<^sub>2 pc\<^sub>1 frs)); h\<^sub>2 aa = \<lfloor>(C, fs)\<rfloor>; fs' = fs((F, D) \<mapsto> v); h\<^sub>2' = h\<^sub>2(aa \<mapsto> (C, fs')); P,Ca,M,pc \<rhd> compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2); P,Ca,M \<rhd> compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))} \<subseteq> I\<rbrakk> \<Longrightarrow> (unit = Val va \<longrightarrow> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> (None, h\<^sub>2', (va # vs, l\<^sub>2, Ca, M, pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2))) # frs)) \<and> (unit = Throw xa \<longrightarrow> (\<exists>pc\<^sub>1\<ge>pc. pc\<^sub>1 < pc + length (compE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2)) \<and> \<not> caught P pc\<^sub>1 h\<^sub>2' xa (compxE\<^sub>2 (e\<^sub>1\<bullet>F{D} := e\<^sub>2) pc (length vs)) \<and> P \<turnstile> (None, a, (vs, b, Ca, M, pc) # frs) -jvm\<rightarrow> handle P Ca M xa h\<^sub>2' vs l\<^sub>2 pc\<^sub>1 frs))
 2. \<And>e\<^sub>1 a b aa ba e\<^sub>2 v ab bb F D C M pc va xa vs frs I. \<lbrakk>P\<^sub>1 \<turnstile>\<^sub>1 \<langle>e\<^sub>1,(a, b)\<rangle> \<Rightarrow> \<langle>null,(aa, ba)\<rangle>; \<And>C M pc v xa vs frs I. \<lbrakk>P,C,M,pc \<rhd> compE\<^sub>2 e\<^sub>1; P,C,M \<rhd> compxE\<^sub>2 e\<^sub>1 pc (length vs) / I,length vs; {pc..<pc + length (compE\<^sub>2 e\<^sub>1)} \<subseteq> I\<rbrakk> \<Longrightarrow> (null = Val v \<longrightarrow> P \<turnstile> (None, a