cases: fixes P :: "(char list list \<times> char list exp) prog"   and a1 :: "char list exp"   and a2 :: "heap \<times> sfields \<times> sheap"   and a3 :: "char list exp"   and a4 :: "heap \<times> sfields \<times> sheap" assumes "P \<turnstile> \<langle>a1,a2\<rangle> \<Rightarrow> \<langle>a3,a4\<rangle>" obtains sh :: "sheap" and C :: "char list" and sfs :: "sfields" and h :: "heap" and a :: "nat" and FDTs :: "((char list \<times> char list) \<times> staticb \<times> ty) list" and h' :: "heap" and l :: "sfields" where "a1 = new C__" and "a2 = (h__, l__, sh__)" and "a3 = addr aa__" and "a4 = (h'__, l__, sh__)" and "sh__ C__ = \<lfloor>(sfs__, Done)\<rfloor>" and "new_Addr h__ = \<lfloor>aa__\<rfloor>" and "P \<turnstile> C__ has_fields FDTs__" and "h'__ = h__(aa__ \<mapsto> blank P C__)"   | sh :: "sheap" and C :: "char list" and sfs :: "sfields" and h :: "heap" and l :: "sfields" where "a1 = new Ca__" and "a2 = (ha__, la__, sha__)" and "a3 = THROW OutOfMemory" and "a4 = (ha__, la__, sha__)" and "sha__ Ca__ = \<lfloor>(sfsa__, Done)\<rfloor>" and "new_Addr ha__ = None" and "is_class P Ca__"   | sh :: "sheap" and C :: "char list" and h :: "heap" and l :: "sfields" and v' :: "val" and h' :: "heap" and l' :: "sfields" and sh' :: "sheap" and a :: "nat" and FDTs :: "((char list \<times> char list) \<times> staticb \<times> ty) list" and h'' :: "heap" where "a1 = new Cb__" and "a2 = (hb__, lb__, shb__)" and "a3 = addr ab__" and "a4 = (h'', l'__, sh'__)" and "\<nexists>sfs. shb__ Cb__ = \<lfloor>(sfs, Done)\<rfloor>" and "P \<turnstile> \<langle>INIT Cb__ ([Cb__],False) \<leftarrow> unit,(hb__, lb__, shb__)\<rangle> \<Rightarrow> \<langle>Val v'__,(h'a__, l'__, sh'__)\<rangle>" and "new_Addr h'a__ = \<lfloor>ab__\<rfloor>" and "P \<turnstile> Cb__ has_fields FDTs" and "h'' = h'a__(ab__ \<mapsto> blank P Cb__)"   | sh :: "sheap" and C :: "char list" and h :: "heap" and l :: "sfields" and v' :: "val" and h' :: "heap" and l' :: "sfields" and sh' :: "sheap" where "a1 = new Cc__" and "a2 = (hc__, lc__, shc__)" and "a3 = THROW OutOfMemory" and "a4 = (h'b__, l'a__, sh'a__)" and "\<nexists>sfs. shc__ Cc__ = \<lfloor>(sfs, Done)\<rfloor>" and "P \<turnstile> \<langle>INIT Cc__ ([Cc__],False) \<leftarrow> unit,(hc__, lc__, shc__)\<rangle> \<Rightarrow> \<langle>Val v'a__,(h'b__, l'a__, sh'a__)\<rangle>" and "new_Addr h'b__ = None" and "is_class P Cc__"   | sh :: "sheap" and C :: "char list" and h :: "heap" and l :: "sfields" and a :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" where "a1 = new Cd__" and "a2 = (hd__, ld__, shd__)" and "a3 = throw ac__" and "a4 = s'a__" and "\<nexists>sfs. shd__ Cd__ = \<lfloor>(sfs, Done)\<rfloor>" and "P \<turnstile> \<langle>INIT Cd__ ([Cd__],False) \<leftarrow> unit,(hd__, ld__, shd__)\<rangle> \<Rightarrow> \<langle>throw ac__,s'a__\<rangle>" and "is_class P Cd__"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and h :: "heap" and l :: "sfields" and sh :: "sheap" and D :: "char list" and fs :: "Objects.fields" and C :: "char list" where "a1 = Cast Ce__ ea__" and "a2 = s\<^sub>0__" and "a3 = addr ad__" and "a4 = (he__, le__, she__)" and "P \<turnstile> \<langle>ea__,s\<^sub>0__\<rangle> \<Rightarrow> \<langle>addr ad__,(he__, le__, she__)\<rangle>" and "he__ ad__ = \<lfloor>(D__, fs__)\<rfloor>" and "P \<turnstile> D__ \<preceq>\<^sup>* Ce__"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and C :: "char list" where "a1 = Cast Cf__ eb__" and "a2 = s\<^sub>0'__" and "a3 = null" and "a4 = s\<^sub>1__" and "P \<turnstile> \<langle>eb__,s\<^sub>0'__\<rangle> \<Rightarrow> \<langle>null,s\<^sub>1__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and h :: "heap" and l :: "sfields" and sh :: "sheap" and D :: "char list" and fs :: "Objects.fields" and C :: "char list" where "a1 = Cast Cg__ ec__" and "a2 = s\<^sub>0''__" and "a3 = THROW ClassCast" and "a4 = (hf__, lf__, shf__)" and "P \<turnstile> \<langle>ec__,s\<^sub>0''__\<rangle> \<Rightarrow> \<langle>addr ae__,(hf__, lf__, shf__)\<rangle>" and "hf__ ae__ = \<lfloor>(Da__, fsa__)\<rfloor>" and "(Da__, Cg__) \<notin> (subcls1 P)\<^sup>*"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and e' :: "char list exp" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and C :: "char list" where "a1 = Cast Ch__ ed__" and "a2 = s\<^sub>0'''__" and "a3 = throw e'__" and "a4 = s\<^sub>1'__" and "P \<turnstile> \<langle>ed__,s\<^sub>0'''__\<rangle> \<Rightarrow> \<langle>throw e'__,s\<^sub>1'__\<rangle>"   | v :: "val" and s :: "heap \<times> sfields \<times> sheap" where "a1 = Val va__" and "a2 = sa__" and "a3 = Val va__" and "a4 = sa__"   | e\<^sub>1 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and v\<^sub>1 :: "val" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and e\<^sub>2 :: "char list exp" and v\<^sub>2 :: "val" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and bop :: "bop" and v :: "val" where "a1 = e\<^sub>1__ \<guillemotleft>bop__\<guillemotright> e\<^sub>2__" and "a2 = s\<^sub>0''''__" and "a3 = Val vb__" and "a4 = s\<^sub>2__" and "P \<turnstile> \<langle>e\<^sub>1__,s\<^sub>0''''__\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1__,s\<^sub>1''__\<rangle>" and "P \<turnstile> \<langle>e\<^sub>2__,s\<^sub>1''__\<rangle> \<Rightarrow> \<langle>Val v\<^sub>2,s\<^sub>2__\<rangle>" and "binop (bop__, v\<^sub>1__, v\<^sub>2) = \<lfloor>vb__\<rfloor>"   | e\<^sub>1 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and e :: "char list exp" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and bop :: "bop" and e\<^sub>2 :: "char list exp" where "a1 = e\<^sub>1'__ \<guillemotleft>bopa__\<guillemotright> e\<^sub>2'__" and "a2 = s\<^sub>0'''''__" and "a3 = throw ee__" and "a4 = s\<^sub>1'''__" and "P \<turnstile> \<langle>e\<^sub>1'__,s\<^sub>0'''''__\<rangle> \<Rightarrow> \<langle>throw ee__,s\<^sub>1'''__\<rangle>"   | e\<^sub>1 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and v\<^sub>1 :: "val" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and e\<^sub>2 :: "char list exp" and e :: "char list exp" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and bop :: "bop" where "a1 = e\<^sub>1''__ \<guillemotleft>bop\<guillemotright> e\<^sub>2''__" and "a2 = s\<^sub>0''''''__" and "a3 = throw ef__" and "a4 = s\<^sub>2'__" and "P \<turnstile> \<langle>e\<^sub>1''__,s\<^sub>0''''''__\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1'__,s\<^sub>1''''__\<rangle>" and "P \<turnstile> \<langle>e\<^sub>2''__,s\<^sub>1''''__\<rangle> \<Rightarrow> \<langle>throw ef__,s\<^sub>2'__\<rangle>"   | l :: "sfields" and V :: "char list" and v :: "val" and h :: "heap" and sh :: "sheap" where "a1 = Var V__" and "a2 = (hg__, lg__, shg__)" and "a3 = Val vc__" and "a4 = (hg__, lg__, shg__)" and "lg__ V__ = \<lfloor>vc__\<rfloor>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and v :: "val" and h :: "heap" and l :: "sfields" and sh :: "sheap" and l' :: "sfields" and V :: "char list" where "a1 = Va__:=eg__" and "a2 = s\<^sub>0'''''''__" and "a3 = unit" and "a4 = (hh__, l'b__, shh__)" and "P \<turnstile> \<langle>eg__,s\<^sub>0'''''''__\<rangle> \<Rightarrow> \<langle>Val vd__,(hh__, lh__, shh__)\<rangle>" and "l'b__ = lh__(Va__ \<mapsto> vd__)"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and e' :: "char list exp" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and V :: "char list" where "a1 = Vb__:=eh__" and "a2 = s\<^sub>0''''''''__" and "a3 = throw e'a__" and "a4 = s\<^sub>1'''''__" and "P \<turnstile> \<langle>eh__,s\<^sub>0''''''''__\<rangle> \<Rightarrow> \<langle>throw e'a__,s\<^sub>1'''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and h :: "heap" and l :: "sfields" and sh :: "sheap" and C :: "char list" and fs :: "Objects.fields" and F :: "char list" and t :: "ty" and D :: "char list" and v :: "val" where "a1 = ei__\<bullet>F__{Db__}" and "a2 = s\<^sub>0'''''''''__" and "a3 = Val ve__" and "a4 = (hi__, li__, shi__)" and "P \<turnstile> \<langle>ei__,s\<^sub>0'''''''''__\<rangle> \<Rightarrow> \<langle>addr af__,(hi__, li__, shi__)\<rangle>" and "hi__ af__ = \<lfloor>(Ci__, fsb__)\<rfloor>" and "P \<turnstile> Ci__ has F__,NonStatic:t__ in Db__" and "fsb__ (F__, Db__) = \<lfloor>ve__\<rfloor>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and F :: "char list" and D :: "char list" where "a1 = ej__\<bullet>Fa__{Dc__}" and "a2 = s\<^sub>0''''''''''__" and "a3 = THROW NullPointer" and "a4 = s\<^sub>1''''''__" and "P \<turnstile> \<langle>ej__,s\<^sub>0''''''''''__\<rangle> \<Rightarrow> \<langle>null,s\<^sub>1''''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and e' :: "char list exp" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and F :: "char list" and D :: "char list" where "a1 = ek__\<bullet>Fb__{Dd__}" and "a2 = s\<^sub>0'''''''''''__" and "a3 = throw e'b__" and "a4 = s\<^sub>1'''''''__" and "P \<turnstile> \<langle>ek__,s\<^sub>0'''''''''''__\<rangle> \<Rightarrow> \<langle>throw e'b__,s\<^sub>1'''''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and h :: "heap" and l :: "sfields" and sh :: "sheap" and C :: "char list" and fs :: "Objects.fields" and F :: "char list" and D :: "char list" where "a1 = el__\<bullet>Fc__{De__}" and "a2 = s\<^sub>0''''''''''''__" and "a3 = THROW NoSuchFieldError" and "a4 = (hj__, lj__, shj__)" and "P \<turnstile> \<langle>el__,s\<^sub>0''''''''''''__\<rangle> \<Rightarrow> \<langle>addr ag__,(hj__, lj__, shj__)\<rangle>" and "hj__ ag__ = \<lfloor>(Cj__, fsc__)\<rfloor>" and "\<nexists>b t. P \<turnstile> Cj__ has Fc__,b:t in De__"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and h :: "heap" and l :: "sfields" and sh :: "sheap" and C :: "char list" and fs :: "Objects.fields" and F :: "char list" and t :: "ty" and D :: "char list" where "a1 = em__\<bullet>Fd__{Df__}" and "a2 = s\<^sub>0'''''''''''''__" and "a3 = THROW IncompatibleClassChangeError" and "a4 = (hk__, lk__, shk__)" and "P \<turnstile> \<langle>em__,s\<^sub>0'''''''''''''__\<rangle> \<Rightarrow> \<langle>addr ah__,(hk__, lk__, shk__)\<rangle>" and "hk__ ah__ = \<lfloor>(Ck__, fsd__)\<rfloor>" and "P \<turnstile> Ck__ has Fd__,Static:ta__ in Df__"   | C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and sh :: "sheap" and sfs :: "sfields" and v :: "val" and h :: "heap" and l :: "sfields" where "a1 = Cl__\<bullet>\<^sub>sFe__{Dg__}" and "a2 = (hl__, ll__, shl__)" and "a3 = Val vf__" and "a4 = (hl__, ll__, shl__)" and "P \<turnstile> Cl__ has Fe__,Static:tb__ in Dg__" and "shl__ Dg__ = \<lfloor>(sfsb__, Done)\<rfloor>" and "sfsb__ Fe__ = \<lfloor>vf__\<rfloor>"   | C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and sh :: "sheap" and h :: "heap" and l :: "sfields" and v' :: "val" and h' :: "heap" and l' :: "sfields" and sh' :: "sheap" and sfs :: "sfields" and i :: "init_state" and v :: "val" where "a1 = Cm__\<bullet>\<^sub>sFf__{Dh__}" and "a2 = (hm__, lm__, shm__)" and "a3 = Val vg__" and "a4 = (h'c__, l'c__, sh'b__)" and "P \<turnstile> Cm__ has Ff__,Static:tc__ in Dh__" and "\<nexists>sfs. shm__ Dh__ = \<lfloor>(sfs, Done)\<rfloor>" and "P \<turnstile> \<langle>INIT Dh__ ([Dh__],False) \<leftarrow> unit,(hm__, lm__, shm__)\<rangle> \<Rightarrow> \<langle>Val v'b__,(h'c__, l'c__, sh'b__)\<rangle>" and "sh'b__ Dh__ = \<lfloor>(sfsc__, i__)\<rfloor>" and "sfsc__ Ff__ = \<lfloor>vg__\<rfloor>"   | C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and sh :: "sheap" and h :: "heap" and l :: "sfields" and a :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" where "a1 = Cn__\<bullet>\<^sub>sFg__{Di__}" and "a2 = (hn__, ln__, shn__)" and "a3 = throw ai__" and "a4 = s'b__" and "P \<turnstile> Cn__ has Fg__,Static:td__ in Di__" and "\<nexists>sfs. shn__ Di__ = \<lfloor>(sfs, Done)\<rfloor>" and "P \<turnstile> \<langle>INIT Di__ ([Di__],False) \<leftarrow> unit,(hn__, ln__, shn__)\<rangle> \<Rightarrow> \<langle>throw ai__,s'b__\<rangle>"   | C :: "char list" and F :: "char list" and D :: "char list" and s :: "heap \<times> sfields \<times> sheap" where "a1 = Co__\<bullet>\<^sub>sFh__{Dj__}" and "a2 = sb__" and "a3 = THROW NoSuchFieldError" and "a4 = sb__" and "\<nexists>b t. P \<turnstile> Co__ has Fh__,b:t in Dj__"   | C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and s :: "heap \<times> sfields \<times> sheap" where "a1 = Cp__\<bullet>\<^sub>sFi__{Dk__}" and "a2 = sc__" and "a3 = THROW IncompatibleClassChangeError" and "a4 = sc__" and "P \<turnstile> Cp__ has Fi__,NonStatic:te__ in Dk__"   | e\<^sub>1 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and e\<^sub>2 :: "char list exp" and v :: "val" and h\<^sub>2 :: "heap" and l\<^sub>2 :: "sfields" and sh\<^sub>2 :: "sheap" and C :: "char list" and fs :: "Objects.fields" and F :: "char list" and t :: "ty" and D :: "char list" and fs' :: "Objects.fields" and h\<^sub>2' :: "heap" where "a1 = e\<^sub>1'''__\<bullet>Fj__{Dl__} := e\<^sub>2'''__" and "a2 = s\<^sub>0''''''''''''''__" and "a3 = unit" and "a4 = (h\<^sub>2', l\<^sub>2__, sh\<^sub>2__)" and "P \<turnstile> \<langle>e\<^sub>1'''__,s\<^sub>0''''''''''''''__\<rangle> \<Rightarrow> \<langle>addr aj__,s\<^sub>1''''''''__\<rangle>" and "P \<turnstile> \<langle>e\<^sub>2'''__,s\<^sub>1''''''''__\<rangle> \<Rightarrow> \<langle>Val vh__,(h\<^sub>2__, l\<^sub>2__, sh\<^sub>2__)\<rangle>" and "h\<^sub>2__ aj__ = \<lfloor>(Cq__, fse__)\<rfloor>" and "P \<turnstile> Cq__ has Fj__,NonStatic:tf__ in Dl__" and "fs' = fse__((Fj__, Dl__) \<mapsto> vh__)" and "h\<^sub>2' = h\<^sub>2__(aj__ \<mapsto> (Cq__, fs'))"   | e\<^sub>1 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and e\<^sub>2 :: "char list exp" and v :: "val" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and F :: "char list" and D :: "char list" where "a1 = e\<^sub>1''''__\<bullet>Fk__{Dm__} := e\<^sub>2''''__" and "a2 = s\<^sub>0'''''''''''''''__" and "a3 = THROW NullPointer" and "a4 = s\<^sub>2''__" and "P \<turnstile> \<langle>e\<^sub>1''''__,s\<^sub>0'''''''''''''''__\<rangle> \<Rightarrow> \<langle>null,s\<^sub>1'''''''''__\<rangle>" and "P \<turnstile> \<langle>e\<^sub>2''''__,s\<^sub>1'''''''''__\<rangle> \<Rightarrow> \<langle>Val vi__,s\<^sub>2''__\<rangle>"   | e\<^sub>1 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and e' :: "char list exp" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and F :: "char list" and D :: "char list" and e\<^sub>2 :: "char list exp" where "a1 = e\<^sub>1'''''__\<bullet>Fl__{Dn__} := e\<^sub>2'''''__" and "a2 = s\<^sub>0''''''''''''''''__" and "a3 = throw e'c__" and "a4 = s\<^sub>1''''''''''__" and "P \<turnstile> \<langle>e\<^sub>1'''''__,s\<^sub>0''''''''''''''''__\<rangle> \<Rightarrow> \<langle>throw e'c__,s\<^sub>1''''''''''__\<rangle>"   | e\<^sub>1 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and v :: "val" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and e\<^sub>2 :: "char list exp" and e' :: "char list exp" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and F :: "char list" and D :: "char list" where "a1 = e\<^sub>1''''''__\<bullet>Fm__{Do__} := e\<^sub>2''''''__" and "a2 = s\<^sub>0'''''''''''''''''__" and "a3 = throw e'd__" and "a4 = s\<^sub>2'''__" and "P \<turnstile> \<langle>e\<^sub>1''''''__,s\<^sub>0'''''''''''''''''__\<rangle> \<Rightarrow> \<langle>Val vj__,s\<^sub>1'''''''''''__\<rangle>" and "P \<turnstile> \<langle>e\<^sub>2''''''__,s\<^sub>1'''''''''''__\<rangle> \<Rightarrow> \<langle>throw e'd__,s\<^sub>2'''__\<rangle>"   | e\<^sub>1 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and e\<^sub>2 :: "char list exp" and v :: "val" and h\<^sub>2 :: "heap" and l\<^sub>2 :: "sfields" and sh\<^sub>2 :: "sheap" and C :: "char list" and fs :: "Objects.fields" and F :: "char list" and D :: "char list" where "a1 = e\<^sub>1'''''''__\<bullet>Fn__{Dp__} := e\<^sub>2'''''''__" and "a2 = s\<^sub>0''''''''''''''''''__" and "a3 = THROW NoSuchFieldError" and "a4 = (h\<^sub>2''__, l\<^sub>2'__, sh\<^sub>2'__)" and "P \<turnstile> \<langle>e\<^sub>1'''''''__,s\<^sub>0''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>addr ak__,s\<^sub>1''''''''''''__\<rangle>" and "P \<turnstile> \<langle>e\<^sub>2'''''''__,s\<^sub>1''''''''''''__\<rangle> \<Rightarrow> \<langle>Val vk__,(h\<^sub>2''__, l\<^sub>2'__, sh\<^sub>2'__)\<rangle>" and "h\<^sub>2''__ ak__ = \<lfloor>(Cr__, fsf__)\<rfloor>" and "\<nexists>b t. P \<turnstile> Cr__ has Fn__,b:t in Dp__"   | e\<^sub>1 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and e\<^sub>2 :: "char list exp" and v :: "val" and h\<^sub>2 :: "heap" and l\<^sub>2 :: "sfields" and sh\<^sub>2 :: "sheap" and C :: "char list" and fs :: "Objects.fields" and F :: "char list" and t :: "ty" and D :: "char list" where "a1 = e\<^sub>1''''''''__\<bullet>Fo__{Dq__} := e\<^sub>2''''''''__" and "a2 = s\<^sub>0'''''''''''''''''''__" and "a3 = THROW IncompatibleClassChangeError" and "a4 = (h\<^sub>2'''__, l\<^sub>2''__, sh\<^sub>2''__)" and "P \<turnstile> \<langle>e\<^sub>1''''''''__,s\<^sub>0'''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>addr al__,s\<^sub>1'''''''''''''__\<rangle>" and "P \<turnstile> \<langle>e\<^sub>2''''''''__,s\<^sub>1'''''''''''''__\<rangle> \<Rightarrow> \<langle>Val vl__,(h\<^sub>2'''__, l\<^sub>2''__, sh\<^sub>2''__)\<rangle>" and "h\<^sub>2'''__ al__ = \<lfloor>(Cs__, fsg__)\<rfloor>" and "P \<turnstile> Cs__ has Fo__,Static:tg__ in Dq__"   | e\<^sub>2 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and v :: "val" and h\<^sub>1 :: "heap" and l\<^sub>1 :: "sfields" and sh\<^sub>1 :: "sheap" and C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and sfs :: "sfields" and sfs' :: "sfields" and sh\<^sub>1' :: "sheap" where "a1 = Ct__\<bullet>\<^sub>sFp__{Dr__} := e\<^sub>2'''''''''__" and "a2 = s\<^sub>0''''''''''''''''''''__" and "a3 = unit" and "a4 = (h\<^sub>1__, l\<^sub>1__, sh\<^sub>1')" and "P \<turnstile> \<langle>e\<^sub>2'''''''''__,s\<^sub>0''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>Val vm__,(h\<^sub>1__, l\<^sub>1__, sh\<^sub>1__)\<rangle>" and "P \<turnstile> Ct__ has Fp__,Static:th__ in Dr__" and "sh\<^sub>1__ Dr__ = \<lfloor>(sfsd__, Done)\<rfloor>" and "sfs'__ = sfsd__(Fp__ \<mapsto> vm__)" and "sh\<^sub>1' = sh\<^sub>1__(Dr__ \<mapsto> (sfs'__, Done))"   | e\<^sub>2 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and v :: "val" and h\<^sub>1 :: "heap" and l\<^sub>1 :: "sfields" and sh\<^sub>1 :: "sheap" and C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and v' :: "val" and h' :: "heap" and l' :: "sfields" and sh' :: "sheap" and sfs :: "sfields" and i :: "init_state" and sfs' :: "sfields" and sh'' :: "sheap" where "a1 = Cu__\<bullet>\<^sub>sFq__{Ds__} := e\<^sub>2''''''''''__" and "a2 = s\<^sub>0'''''''''''''''''''''__" and "a3 = unit" and "a4 = (h'd__, l'd__, sh''__)" and "P \<turnstile> \<langle>e\<^sub>2''''''''''__,s\<^sub>0'''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>Val vn__,(h\<^sub>1'__, l\<^sub>1'__, sh\<^sub>1''__)\<rangle>" and "P \<turnstile> Cu__ has Fq__,Static:ti__ in Ds__" and "\<nexists>sfs. sh\<^sub>1''__ Ds__ = \<lfloor>(sfs, Done)\<rfloor>" and "P \<turnstile> \<langle>INIT Ds__ ([Ds__],False) \<leftarrow> unit,(h\<^sub>1'__, l\<^sub>1'__, sh\<^sub>1''__)\<rangle> \<Rightarrow> \<langle>Val v'c__,(h'd__, l'd__, sh'c__)\<rangle>" and "sh'c__ Ds__ = \<lfloor>(sfse__, ia__)\<rfloor>" and "sfs' = sfse__(Fq__ \<mapsto> vn__)" and "sh''__ = sh'c__(Ds__ \<mapsto> (sfs', ia__))"   | e\<^sub>2 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and v :: "val" and h\<^sub>1 :: "heap" and l\<^sub>1 :: "sfields" and sh\<^sub>1 :: "sheap" and C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and a :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" where "a1 = Cv__\<bullet>\<^sub>sFr__{Dt__} := e\<^sub>2'''''''''''__" and "a2 = s\<^sub>0''''''''''''''''''''''__" and "a3 = throw am__" and "a4 = s'c__" and "P \<turnstile> \<langle>e\<^sub>2'''''''''''__,s\<^sub>0''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>Val vo__,(h\<^sub>1''__, l\<^sub>1''__, sh\<^sub>1'''__)\<rangle>" and "P \<turnstile> Cv__ has Fr__,Static:tj__ in Dt__" and "\<nexists>sfs. sh\<^sub>1'''__ Dt__ = \<lfloor>(sfs, Done)\<rfloor>" and "P \<turnstile> \<langle>INIT Dt__ ([Dt__],False) \<leftarrow> unit,(h\<^sub>1''__, l\<^sub>1''__, sh\<^sub>1'''__)\<rangle> \<Rightarrow> \<langle>throw am__,s'c__\<rangle>"   | e\<^sub>2 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and e' :: "char list exp" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and C :: "char list" and F :: "char list" and D :: "char list" where "a1 = Cw__\<bullet>\<^sub>sFs__{Du__} := e\<^sub>2''''''''''''__" and "a2 = s\<^sub>0'''''''''''''''''''''''__" and "a3 = throw e'e__" and "a4 = s\<^sub>2''''__" and "P \<turnstile> \<langle>e\<^sub>2''''''''''''__,s\<^sub>0'''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>throw e'e__,s\<^sub>2''''__\<rangle>"   | e\<^sub>2 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and v :: "val" and h\<^sub>2 :: "heap" and l\<^sub>2 :: "sfields" and sh\<^sub>2 :: "sheap" and C :: "char list" and F :: "char list" and D :: "char list" where "a1 = Cx__\<bullet>\<^sub>sFt__{Dv__} := e\<^sub>2'''''''''''''__" and "a2 = s\<^sub>0''''''''''''''''''''''''__" and "a3 = THROW NoSuchFieldError" and "a4 = (h\<^sub>2''''__, l\<^sub>2'''__, sh\<^sub>2'''__)" and "P \<turnstile> \<langle>e\<^sub>2'''''''''''''__,s\<^sub>0''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>Val vp__,(h\<^sub>2''''__, l\<^sub>2'''__, sh\<^sub>2'''__)\<rangle>" and "\<nexists>b t. P \<turnstile> Cx__ has Ft__,b:t in Dv__"   | e\<^sub>2 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and v :: "val" and h\<^sub>2 :: "heap" and l\<^sub>2 :: "sfields" and sh\<^sub>2 :: "sheap" and C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" where "a1 = Cy__\<bullet>\<^sub>sF{Dw__} := e\<^sub>2''''''''''''''__" and "a2 = s\<^sub>0'''''''''''''''''''''''''__" and "a3 = THROW IncompatibleClassChangeError" and "a4 = (h\<^sub>2'''''__, l\<^sub>2''''__, sh\<^sub>2''''__)" and "P \<turnstile> \<langle>e\<^sub>2''''''''''''''__,s\<^sub>0'''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>Val vq__,(h\<^sub>2'''''__, l\<^sub>2''''__, sh\<^sub>2''''__)\<rangle>" and "P \<turnstile> Cy__ has F,NonStatic:t in Dw__"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and e' :: "char list exp" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and M :: "char list" and ps :: "char list exp list" where "a1 = en__\<bullet>M__(ps__)" and "a2 = s\<^sub>0''''''''''''''''''''''''''__" and "a3 = throw e'f__" and "a4 = s\<^sub>1''''''''''''''__" and "P \<turnstile> \<langle>en__,s\<^sub>0''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>throw e'f__,s\<^sub>1''''''''''''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and v :: "val" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and es :: "char list exp list" and vs :: "val list" and ex :: "char list exp" and es' :: "char list exp list" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and M :: "char list" where "a1 = eo__\<bullet>Ma__(es__)" and "a2 = s\<^sub>0'''''''''''''''''''''''''''__" and "a3 = throw ex__" and "a4 = s\<^sub>2'''''__" and "P \<turnstile> \<langle>eo__,s\<^sub>0'''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>Val vr__,s\<^sub>1'''''''''''''''__\<rangle>" and "P \<turnstile> \<langle>es__,s\<^sub>1'''''''''''''''__\<rangle> [\<Rightarrow>] \<langle>map Val vs__ @ throw ex__ # es'__,s\<^sub>2'''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and ps :: "char list exp list" and vs :: "val list" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and M :: "char list" where "a1 = ep__\<bullet>Mb__(psa__)" and "a2 = s\<^sub>0''''''''''''''''''''''''''''__" and "a3 = THROW NullPointer" and "a4 = s\<^sub>2''''''__" and "P \<turnstile> \<langle>ep__,s\<^sub>0''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>null,s\<^sub>1''''''''''''''''__\<rangle>" and "P \<turnstile> \<langle>psa__,s\<^sub>1''''''''''''''''__\<rangle> [\<Rightarrow>] \<langle>map Val vsa__,s\<^sub>2''''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and ps :: "char list exp list" and vs :: "val list" and h\<^sub>2 :: "heap" and l\<^sub>2 :: "sfields" and sh\<^sub>2 :: "sheap" and C :: "char list" and fs :: "Objects.fields" and M :: "char list" where "a1 = eq__\<bullet>Mc__(psb__)" and "a2 = s\<^sub>0'''''''''''''''''''''''''''''__" and "a3 = THROW NoSuchMethodError" and "a4 = (h\<^sub>2''''''__, l\<^sub>2'''''__, sh\<^sub>2'''''__)" and "P \<turnstile> \<langle>eq__,s\<^sub>0'''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>addr an__,s\<^sub>1'''''''''''''''''__\<rangle>" and "P \<turnstile> \<langle>psb__,s\<^sub>1'''''''''''''''''__\<rangle> [\<Rightarrow>] \<langle>map Val vsb__,(h\<^sub>2''''''__, l\<^sub>2'''''__, sh\<^sub>2'''''__)\<rangle>" and "h\<^sub>2''''''__ an__ = \<lfloor>(Cz__, fsh__)\<rfloor>" and "\<nexists>b Ts T m D. P \<turnstile> Cz__ sees Mc__, b :  Ts\<rightarrow>T = m in D"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and ps :: "char list exp list" and vs :: "val list" and h\<^sub>2 :: "heap" and l\<^sub>2 :: "sfields" and sh\<^sub>2 :: "sheap" and C :: "char list" and fs :: "Objects.fields" and M :: "char list" and Ts :: "ty list" and T :: "ty" and m :: "char list list \<times> char list exp" and D :: "char list" where "a1 = er__\<bullet>Md__(psc__)" and "a2 = s\<^sub>0''''''''''''''''''''''''''''''__" and "a3 = THROW IncompatibleClassChangeError" and "a4 = (h\<^sub>2'''''''__, l\<^sub>2''''''__, sh\<^sub>2''''''__)" and "P \<turnstile> \<langle>er__,s\<^sub>0''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>addr ao__,s\<^sub>1''''''''''''''''''__\<rangle>" and "P \<turnstile> \<langle>psc__,s\<^sub>1''''''''''''''''''__\<rangle> [\<Rightarrow>] \<langle>map Val vsc__,(h\<^sub>2'''''''__, l\<^sub>2''''''__, sh\<^sub>2''''''__)\<rangle>" and "h\<^sub>2'''''''__ ao__ = \<lfloor>(Caa__, fsi__)\<rfloor>" and "P \<turnstile> Caa__ sees Md__, Static :  Ts__\<rightarrow>T__ = m__ in Dx__"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and ps :: "char list exp list" and vs :: "val list" and h\<^sub>2 :: "heap" and l\<^sub>2 :: "sfields" and sh\<^sub>2 :: "sheap" and C :: "char list" and fs :: "Objects.fields" and M :: "char list" and Ts :: "ty list" and T :: "ty" and pns :: "char list list" and body :: "char list exp" and D :: "char list" and l\<^sub>2' :: "sfields" and e' :: "char list exp" and h\<^sub>3 :: "heap" and l\<^sub>3 :: "sfields" and sh\<^sub>3 :: "sheap" where "a1 = et__\<bullet>Me__(psd__)" and "a2 = s\<^sub>0'''''''''''''''''''''''''''''''__" and "a3 = e'g__" and "a4 = (h\<^sub>3__, l\<^sub>2'''''''__, sh\<^sub>3__)" and "P \<turnstile> \<langle>et__,s\<^sub>0'''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>addr ap__,s\<^sub>1'''''''''''''''''''__\<rangle>" and "P \<turnstile> \<langle>psd__,s\<^sub>1'''''''''''''''''''__\<rangle> [\<Rightarrow>] \<langle>map Val vsd__,(h\<^sub>2''''''''__, l\<^sub>2'''''''__, sh\<^sub>2'''''''__)\<rangle>" and "h\<^sub>2''''''''__ ap__ = \<lfloor>(Cab__, fsj__)\<rfloor>" and "P \<turnstile> Cab__ sees Me__, NonStatic :  Tsa__\<rightarrow>Ta__ = (pns__, body__) in Dy__" and "length vsd__ = length pns__" and "l\<^sub>2''''''''__ = [this \<mapsto> Addr ap__, pns__ [\<mapsto>] vsd__]" and "P \<turnstile> \<langle>body__,(h\<^sub>2''''''''__, l\<^sub>2''''''''__, sh\<^sub>2'''''''__)\<rangle> \<Rightarrow> \<langle>e'g__,(h\<^sub>3__, l\<^sub>3__, sh\<^sub>3__)\<rangle>"   | es :: "char list exp list" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and vs :: "val list" and ex :: "char list exp" and es' :: "char list exp list" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and C :: "char list" and M :: "char list" where "a1 = Cac__\<bullet>\<^sub>sMf__(es)" and "a2 = s\<^sub>0''''''''''''''''''''''''''''''''__" and "a3 = throw ex" and "a4 = s\<^sub>2'''''''__" and "P \<turnstile> \<langle>es,s\<^sub>0''''''''''''''''''''''''''''''''__\<rangle> [\<Rightarrow>] \<langle>map Val vse__ @ throw ex # es',s\<^sub>2'''''''__\<rangle>"   | ps :: "char list exp list" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and vs :: "val list" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and C :: "char list" and M :: "char list" where "a1 = Cad__\<bullet>\<^sub>sMg__(pse__)" and "a2 = s\<^sub>0'''''''''''''''''''''''''''''''''__" and "a3 = THROW NoSuchMethodError" and "a4 = s\<^sub>2''''''''__" and "P \<turnstile> \<langle>pse__,s\<^sub>0'''''''''''''''''''''''''''''''''__\<rangle> [\<Rightarrow>] \<langle>map Val vsf__,s\<^sub>2''''''''__\<rangle>" and "\<nexists>b Ts T m D. P \<turnstile> Cad__ sees Mg__, b :  Ts\<rightarrow>T = m in D"   | ps :: "char list exp list" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and vs :: "val list" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and C :: "char list" and M :: "char list" and Ts :: "ty list" and T :: "ty" and m :: "char list list \<times> char list exp" and D :: "char list" where "a1 = Cae__\<bullet>\<^sub>sMh__(psf__)" and "a2 = s\<^sub>0''''''''''''''''''''''''''''''''''__" and "a3 = THROW IncompatibleClassChangeError" and "a4 = s\<^sub>2'''''''''__" and "P \<turnstile> \<langle>psf__,s\<^sub>0''''''''''''''''''''''''''''''''''__\<rangle> [\<Rightarrow>] \<langle>map Val vsg__,s\<^sub>2'''''''''__\<rangle>" and "P \<turnstile> Cae__ sees Mh__, NonStatic :  Tsb__\<rightarrow>Tb__ = m in Dz__"   | ps :: "char list exp list" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and vs :: "val list" and h\<^sub>1 :: "heap" and l\<^sub>1 :: "sfields" and sh\<^sub>1 :: "sheap" and C :: "char list" and M :: "char list" and Ts :: "ty list" and T :: "ty" and pns :: "char list list" and body :: "char list exp" and D :: "char list" and a :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" where "a1 = Caf__\<bullet>\<^sub>sMi__(psg__)" and "a2 = s\<^sub>0'''''''''''''''''''''''''''''''''''__" and "a3 = throw aq__" and "a4 = s'd__" and "P \<turnstile> \<langle>psg__,s\<^sub>0'''''''''''''''''''''''''''''''''''__\<rangle> [\<Rightarrow>] \<langle>map Val vsh__,(h\<^sub>1'''__, l\<^sub>1'''__, sh\<^sub>1''''__)\<rangle>" and "P \<turnstile> Caf__ sees Mi__, Static :  Tsc__\<rightarrow>Tc__ = (pnsa__, bodya__) in Daa__" and "\<nexists>sfs. sh\<^sub>1''''__ Daa__ = \<lfloor>(sfs, Done)\<rfloor>" and "Mi__ \<noteq> clinit" and "P \<turnstile> \<langle>INIT Daa__ ([Daa__],False) \<leftarrow> unit,(h\<^sub>1'''__, l\<^sub>1'''__, sh\<^sub>1''''__)\<rangle> \<Rightarrow> \<langle>throw aq__,s'd__\<rangle>"   | ps :: "char list exp list" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and vs :: "val list" and h\<^sub>1 :: "heap" and l\<^sub>1 :: "sfields" and sh\<^sub>1 :: "sheap" and C :: "char list" and M :: "char list" and Ts :: "ty list" and T :: "ty" and pns :: "char list list" and body :: "char list exp" and D :: "char list" and v' :: "val" and h\<^sub>2 :: "heap" and l\<^sub>2 :: "sfields" and sh\<^sub>2 :: "sheap" and l\<^sub>2' :: "sfields" and e' :: "char list exp" and h\<^sub>3 :: "heap" and l\<^sub>3 :: "sfields" and sh\<^sub>3 :: "sheap" where "a1 = Cag__\<bullet>\<^sub>sMj__(psh__)" and "a2 = s\<^sub>0''''''''''''''''''''''''''''''''''''__" and "a3 = e'h__" and "a4 = (h\<^sub>3'__, l\<^sub>2'''''''''__, sh\<^sub>3'__)" and "P \<turnstile> \<langle>psh__,s\<^sub>0''''''''''''''''''''''''''''''''''''__\<rangle> [\<Rightarrow>] \<langle>map Val vsi__,(h\<^sub>1''''__, l\<^sub>1''''__, sh\<^sub>1'''''__)\<rangle>" and "P \<turnstile> Cag__ sees Mj__, Static :  Tsd__\<rightarrow>Td__ = (pnsb__, bodyb__) in Dab__" and "\<nexists>sfs. sh\<^sub>1'''''__ Dab__ = \<lfloor>(sfs, Done)\<rfloor>" and "Mj__ \<noteq> clinit" and "P \<turnstile> \<langle>INIT Dab__ ([Dab__],False) \<leftarrow> unit,(h\<^sub>1''''__, l\<^sub>1''''__, sh\<^sub>1'''''__)\<rangle> \<Rightarrow> \<langle>Val v',(h\<^sub>2'''''''''__, l\<^sub>2'''''''''__, sh\<^sub>2''''''''__)\<rangle>" and "length vsi__ = length pnsb__" and "l\<^sub>2''''''''''__ = [pnsb__ [\<mapsto>] vsi__]" and "P \<turnstile> \<langle>bodyb__,(h\<^sub>2'''''''''__, l\<^sub>2''''''''''__, sh\<^sub>2''''''''__)\<rangle> \<Rightarrow> \<langle>e'h__,(h\<^sub>3'__, l\<^sub>3'__, sh\<^sub>3'__)\<rangle>"   | ps :: "char list exp list" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and vs :: "val list" and h\<^sub>2 :: "heap" and l\<^sub>2 :: "sfields" and sh\<^sub>2 :: "sheap" and C :: "char list" and M :: "char list" and Ts :: "ty list" and T :: "ty" and pns :: "char list list" and body :: "char list exp" and D :: "char list" and sfs :: "sfields" and l\<^sub>2' :: "sfields" and e' :: "char list exp" and h\<^sub>3 :: "heap" and l\<^sub>3 :: "sfields" and sh\<^sub>3 :: "sheap" where "a1 = Cah__\<bullet>\<^sub>sM(ps)" and "a2 = s\<^sub>0'''''''''''''''''''''''''''''''''''''__" and "a3 = e'i__" and "a4 = (h\<^sub>3, l\<^sub>2'''''''''''__, sh\<^sub>3)" and "P \<turnstile> \<langle>ps,s\<^sub>0'''''''''''''''''''''''''''''''''''''__\<rangle> [\<Rightarrow>] \<langle>map Val vs,(h\<^sub>2''''''''''__, l\<^sub>2'''''''''''__, sh\<^sub>2'''''''''__)\<rangle>" and "P \<turnstile> Cah__ sees M, Static :  Ts\<rightarrow>Te__ = (pns, body) in Dac__" and "sh\<^sub>2'''''''''__ Dac__ = \<lfloor>(sfsf__, Done)\<rfloor> \<or> M = clinit \<and> sh\<^sub>2'''''''''__ Dac__ = \<lfloor>(sfsf__, Processing)\<rfloor>" and "length vs = length pns" and "l\<^sub>2' = [pns [\<mapsto>] vs]" and "P \<turnstile> \<langle>body,(h\<^sub>2''''''''''__, l\<^sub>2', sh\<^sub>2'''''''''__)\<rangle> \<Rightarrow> \<langle>e'i__,(h\<^sub>3, l\<^sub>3, sh\<^sub>3)\<rangle>"   | e\<^sub>0 :: "char list exp" and h\<^sub>0 :: "heap" and l\<^sub>0 :: "sfields" and V :: "char list" and sh\<^sub>0 :: "sheap" and e\<^sub>1 :: "char list exp" and h\<^sub>1 :: "heap" and l\<^sub>1 :: "sfields" and sh\<^sub>1 :: "sheap" and T :: "ty" where "a1 = {Vc__:T; e\<^sub>0__}" and "a2 = (h\<^sub>0, l\<^sub>0, sh\<^sub>0)" and "a3 = e\<^sub>1'''''''''__" and "a4 = (h\<^sub>1'''''__, l\<^sub>1'''''__(Vc__ := l\<^sub>0 Vc__), sh\<^sub>1''''''__)" and "P \<turnstile> \<langle>e\<^sub>0__,(h\<^sub>0, l\<^sub>0(Vc__ := None), sh\<^sub>0)\<rangle> \<Rightarrow> \<langle>e\<^sub>1'''''''''__,(h\<^sub>1'''''__, l\<^sub>1'''''__, sh\<^sub>1''''''__)\<rangle>"   | e\<^sub>0 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and v :: "val" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and e\<^sub>1 :: "char list exp" and e\<^sub>2 :: "char list exp" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" where "a1 = e\<^sub>0'__;; e\<^sub>1''''''''''__" and "a2 = s\<^sub>0''''''''''''''''''''''''''''''''''''''__" and "a3 = e\<^sub>2'''''''''''''''__" and "a4 = s\<^sub>2''''''''''__" and "P \<turnstile> \<langle>e\<^sub>0'__,s\<^sub>0''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>Val vt__,s\<^sub>1''''''''''''''''''''__\<rangle>" and "P \<turnstile> \<langle>e\<^sub>1''''''''''__,s\<^sub>1''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>e\<^sub>2'''''''''''''''__,s\<^sub>2''''''''''__\<rangle>"   | e\<^sub>0 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and e :: "char list exp" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and e\<^sub>1 :: "char list exp" where "a1 = e\<^sub>0;; e\<^sub>1'''''''''''__" and "a2 = s\<^sub>0'''''''''''''''''''''''''''''''''''''''__" and "a3 = throw eu__" and "a4 = s\<^sub>1'''''''''''''''''''''__" and "P \<turnstile> \<langle>e\<^sub>0,s\<^sub>0'''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>throw eu__,s\<^sub>1'''''''''''''''''''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and e\<^sub>1 :: "char list exp" and e' :: "char list exp" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and e\<^sub>2 :: "char list exp" where "a1 = if (ev__) e\<^sub>1''''''''''''__ else e\<^sub>2''''''''''''''''__" and "a2 = s\<^sub>0''''''''''''''''''''''''''''''''''''''''__" and "a3 = e'j__" and "a4 = s\<^sub>2'''''''''''__" and "P \<turnstile> \<langle>ev__,s\<^sub>0''''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>true,s\<^sub>1''''''''''''''''''''''__\<rangle>" and "P \<turnstile> \<langle>e\<^sub>1''''''''''''__,s\<^sub>1''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>e'j__,s\<^sub>2'''''''''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and e\<^sub>2 :: "char list exp" and e' :: "char list exp" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and e\<^sub>1 :: "char list exp" where "a1 = if (ew__) e\<^sub>1'''''''''''''__ else e\<^sub>2'''''''''''''''''__" and "a2 = s\<^sub>0'''''''''''''''''''''''''''''''''''''''''__" and "a3 = e'k__" and "a4 = s\<^sub>2''''''''''''__" and "P \<turnstile> \<langle>ew__,s\<^sub>0'''''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>false,s\<^sub>1'''''''''''''''''''''''__\<rangle>" and "P \<turnstile> \<langle>e\<^sub>2'''''''''''''''''__,s\<^sub>1'''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>e'k__,s\<^sub>2''''''''''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and e' :: "char list exp" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and e\<^sub>1 :: "char list exp" and e\<^sub>2 :: "char list exp" where "a1 = if (ey__) e\<^sub>1''''''''''''''__ else e\<^sub>2''''''''''''''''''__" and "a2 = s\<^sub>0''''''''''''''''''''''''''''''''''''''''''__" and "a3 = throw e'l__" and "a4 = s\<^sub>1''''''''''''''''''''''''__" and "P \<turnstile> \<langle>ey__,s\<^sub>0''''''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>throw e'l__,s\<^sub>1''''''''''''''''''''''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and c :: "char list exp" where "a1 = while (ez__) c__" and "a2 = s\<^sub>0'''''''''''''''''''''''''''''''''''''''''''__" and "a3 = unit" and "a4 = s\<^sub>1'''''''''''''''''''''''''__" and "P \<turnstile> \<langle>ez__,s\<^sub>0'''''''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>false,s\<^sub>1'''''''''''''''''''''''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and c :: "char list exp" and v\<^sub>1 :: "val" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" and e\<^sub>3 :: "char list exp" and s\<^sub>3 :: "heap \<times> sfields \<times> sheap" where "a1 = while (fa__) ca__" and "a2 = s\<^sub>0''''''''''''''''''''''''''''''''''''''''''''__" and "a3 = e\<^sub>3" and "a4 = s\<^sub>3" and "P \<turnstile> \<langle>fa__,s\<^sub>0''''''''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>true,s\<^sub>1''''''''''''''''''''''''''__\<rangle>" and "P \<turnstile> \<langle>ca__,s\<^sub>1''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1''__,s\<^sub>2'''''''''''''__\<rangle>" and "P \<turnstile> \<langle>while (fa__) ca__,s\<^sub>2'''''''''''''__\<rangle> \<Rightarrow> \<langle>e\<^sub>3,s\<^sub>3\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and e' :: "char list exp" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and c :: "char list exp" where "a1 = while (fb__) cb__" and "a2 = s\<^sub>0'''''''''''''''''''''''''''''''''''''''''''''__" and "a3 = throw e'm__" and "a4 = s\<^sub>1'''''''''''''''''''''''''''__" and "P \<turnstile> \<langle>fb__,s\<^sub>0'''''''''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>throw e'm__,s\<^sub>1'''''''''''''''''''''''''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and c :: "char list exp" and e' :: "char list exp" and s\<^sub>2 :: "heap \<times> sfields \<times> sheap" where "a1 = while (fc__) c" and "a2 = s\<^sub>0''''''''''''''''''''''''''''''''''''''''''''''__" and "a3 = throw e'n__" and "a4 = s\<^sub>2" and "P \<turnstile> \<langle>fc__,s\<^sub>0''''''''''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>true,s\<^sub>1''''''''''''''''''''''''''''__\<rangle>" and "P \<turnstile> \<langle>c,s\<^sub>1''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>throw e'n__,s\<^sub>2\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" where "a1 = throw fd__" and "a2 = s\<^sub>0'''''''''''''''''''''''''''''''''''''''''''''''__" and "a3 = Throw ar__" and "a4 = s\<^sub>1'''''''''''''''''''''''''''''__" and "P \<turnstile> \<langle>fd__,s\<^sub>0'''''''''''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>addr ar__,s\<^sub>1'''''''''''''''''''''''''''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" where "a1 = throw fe__" and "a2 = s\<^sub>0''''''''''''''''''''''''''''''''''''''''''''''''__" and "a3 = THROW NullPointer" and "a4 = s\<^sub>1''''''''''''''''''''''''''''''__" and "P \<turnstile> \<langle>fe__,s\<^sub>0''''''''''''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>null,s\<^sub>1''''''''''''''''''''''''''''''__\<rangle>"   | e :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and e' :: "char list exp" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" where "a1 = throw ff__" and "a2 = s\<^sub>0'''''''''''''''''''''''''''''''''''''''''''''''''__" and "a3 = throw e'o__" and "a4 = s\<^sub>1'''''''''''''''''''''''''''''''__" and "P \<turnstile> \<langle>ff__,s\<^sub>0'''''''''''''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>throw e'o__,s\<^sub>1'''''''''''''''''''''''''''''''__\<rangle>"   | e\<^sub>1 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and v\<^sub>1 :: "val" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" and C :: "char list" and V :: "char list" and e\<^sub>2 :: "char list exp" where "a1 = try e\<^sub>1'''''''''''''''__ catch(Cai__ Vd__) e\<^sub>2'''''''''''''''''''__" and "a2 = s\<^sub>0''''''''''''''''''''''''''''''''''''''''''''''''''__" and "a3 = Val v\<^sub>1" and "a4 = s\<^sub>1''''''''''''''''''''''''''''''''__" and "P \<turnstile> \<langle>e\<^sub>1'''''''''''''''__,s\<^sub>0''''''''''''''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>Val v\<^sub>1,s\<^sub>1''''''''''''''''''''''''''''''''__\<rangle>"   | e\<^sub>1 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and h\<^sub>1 :: "heap" and l\<^sub>1 :: "sfields" and sh\<^sub>1 :: "sheap" and D :: "char list" and fs :: "Objects.fields" and C :: "char list" and e\<^sub>2 :: "char list exp" and V :: "char list" and e\<^sub>2' :: "char list exp" and h\<^sub>2 :: "heap" and l\<^sub>2 :: "sfields" and sh\<^sub>2 :: "sheap" where "a1 = try e\<^sub>1''''''''''''''''__ catch(Caj__ Ve__) e\<^sub>2''''''''''''''''''''__" and "a2 = s\<^sub>0'''''''''''''''''''''''''''''''''''''''''''''''''''__" and "a3 = e\<^sub>2'" and "a4 = (h\<^sub>2, l\<^sub>2(Ve__ := l\<^sub>1''''''__ Ve__), sh\<^sub>2)" and "P \<turnstile> \<langle>e\<^sub>1''''''''''''''''__,s\<^sub>0'''''''''''''''''''''''''''''''''''''''''''''''''''__\<rangle> \<Rightarrow> \<langle>Throw as__,(h\<^sub>1''''''__, l\<^sub>1''''''__, sh\<^sub>1'''''''__)\<rangle>" and "h\<^sub>1''''''__ as__ = \<lfloor>(Dad__, fsk__)\<rfloor>" and "P \<turnstile> Dad__ \<preceq>\<^sup>* Caj__" and "P \<turnstile> \<langle>e\<^sub>2''''''''''''''''''''__,(h\<^sub>1''''''__, l\<^sub>1''''''__(Ve__ \<mapsto> Addr as__), sh\<^sub>1'''''''__)\<rangle> \<Rightarrow> \<langle>e\<^sub>2',(h\<^sub>2, l\<^sub>2, sh\<^sub>2)\<rangle>"   | e\<^sub>1 :: "char list exp" and s\<^sub>0 :: "heap \<times> sfields \<times> sheap" and a :: "nat" and h\<^sub>1 :: "heap" and l\<^sub>1 :: "sfields" and sh\<^sub>1 :: "sheap" and D :: "char list" and fs :: "Objects.fields" and C :: "char list" and V :: "char list" and e\<^sub>2 :: "char list exp" where "a1 = try e\<^sub>1'''''''''''''''''__ catch(Cak__ V) e\<^sub>2" and "a2 = s\<^sub>0" and "a3 = Throw at__" and "a4 = (h\<^sub>1, l\<^sub>1, sh\<^sub>1)" and "P \<turnstile> \<langle>e\<^sub>1'''''''''''''''''__,s\<^sub>0\<rangle> \<Rightarrow> \<langle>Throw at__,(h\<^sub>1, l\<^sub>1, sh\<^sub>1)\<rangle>" and "h\<^sub>1 at__ = \<lfloor>(Dae__, fs)\<rfloor>" and "(Dae__, Cak__) \<notin> (subcls1 P)\<^sup>*"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and C :: "char list" and b :: "bool" where "a1 = INIT Cal__ ([],b) \<leftarrow> fg__" and "a2 = sd__" and "a3 = e'p__" and "a4 = s'e__" and "P \<turnstile> \<langle>fg__,sd__\<rangle> \<Rightarrow> \<langle>e'p__,s'e__\<rangle>"   | sh :: "sheap" and C :: "char list" and C' :: "char list" and Cs :: "char list list" and e :: "char list exp" and h :: "heap" and l :: "sfields" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" where "a1 = INIT C'__ (Cam__ # Csa__,False) \<leftarrow> fh__" and "a2 = (ho__, lo__, sho__)" and "a3 = e'q__" and "a4 = s'f__" and "sho__ Cam__ = None" and "P \<turnstile> \<langle>INIT C'__ (Cam__ # Csa__,False) \<leftarrow> fh__,(ho__, lo__, sho__(Cam__ \<mapsto> (sblank P Cam__, Prepared)))\<rangle> \<Rightarrow> \<langle>e'q__,s'f__\<rangle>"   | sh :: "sheap" and C :: "char list" and sfs :: "sfields" and C' :: "char list" and Cs :: "char list list" and e :: "char list exp" and h :: "heap" and l :: "sfields" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" where "a1 = INIT C'a__ (Can__ # Csb__,False) \<leftarrow> fi__" and "a2 = (hp__, lp__, shp__)" and "a3 = e'r__" and "a4 = s'g__" and "shp__ Can__ = \<lfloor>(sfsg__, Done)\<rfloor>" and "P \<turnstile> \<langle>INIT C'a__ (Csb__,True) \<leftarrow> fi__,(hp__, lp__, shp__)\<rangle> \<Rightarrow> \<langle>e'r__,s'g__\<rangle>"   | sh :: "sheap" and C :: "char list" and sfs :: "sfields" and C' :: "char list" and Cs :: "char list list" and e :: "char list exp" and h :: "heap" and l :: "sfields" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" where "a1 = INIT C'b__ (Cao__ # Csc__,False) \<leftarrow> fj__" and "a2 = (hq__, lq__, shq__)" and "a3 = e's__" and "a4 = s'h__" and "shq__ Cao__ = \<lfloor>(sfsh__, Processing)\<rfloor>" and "P \<turnstile> \<langle>INIT C'b__ (Csc__,True) \<leftarrow> fj__,(hq__, lq__, shq__)\<rangle> \<Rightarrow> \<langle>e's__,s'h__\<rangle>"   | sh :: "sheap" and C :: "char list" and sfs :: "sfields" and Cs :: "char list list" and e :: "char list exp" and h :: "heap" and l :: "sfields" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and C' :: "char list" where "a1 = INIT C'c__ (Cap__ # Csd__,False) \<leftarrow> fk__" and "a2 = (hr__, lr__, shr__)" and "a3 = e't__" and "a4 = s'i__" and "shr__ Cap__ = \<lfloor>(sfsi__, Error)\<rfloor>" and "P \<turnstile> \<langle>RI (Cap__,THROW NoClassDefFoundError) ; Csd__ \<leftarrow> fk__,(hr__, lr__, shr__)\<rangle> \<Rightarrow> \<langle>e't__,s'i__\<rangle>"   | sh :: "sheap" and C :: "char list" and sfs :: "sfields" and sh' :: "sheap" and C' :: "char list" and Cs :: "char list list" and e :: "char list exp" and h :: "heap" and l :: "sfields" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" where "a1 = INIT C'd__ (Caq__ # Cse__,False) \<leftarrow> fl__" and "a2 = (hs__, ls__, shs__)" and "a3 = e'u__" and "a4 = s'j__" and "shs__ Caq__ = \<lfloor>(sfsj__, Prepared)\<rfloor>" and "Caq__ = Object" and "sh'd__ = shs__(Caq__ \<mapsto> (sfsj__, Processing))" and "P \<turnstile> \<langle>INIT C'd__ (Caq__ # Cse__,True) \<leftarrow> fl__,(hs__, ls__, sh'd__)\<rangle> \<Rightarrow> \<langle>e'u__,s'j__\<rangle>"   | sh :: "sheap" and C :: "char list" and sfs :: "sfields" and D :: "char list" and r :: "fdecl list \<times> (char list list \<times> char list exp) mdecl list" and sh' :: "sheap" and C' :: "char list" and Cs :: "char list list" and e :: "char list exp" and h :: "heap" and l :: "sfields" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" where "a1 = INIT C'e__ (Car__ # Csf__,False) \<leftarrow> fm__" and "a2 = (ht__, lt__, sht__)" and "a3 = e'v__" and "a4 = s'k__" and "sht__ Car__ = \<lfloor>(sfsk__, Prepared)\<rfloor>" and "Car__ \<noteq> Object" and "class P Car__ = \<lfloor>(Daf__, r)\<rfloor>" and "sh'e__ = sht__(Car__ \<mapsto> (sfsk__, Processing))" and "P \<turnstile> \<langle>INIT C'e__ (Daf__ # Car__ # Csf__,False) \<leftarrow> fm__,(ht__, lt__, sh'e__)\<rangle> \<Rightarrow> \<langle>e'v__,s'k__\<rangle>"   | C :: "char list" and Cs :: "char list list" and e :: "char list exp" and h :: "heap" and l :: "sfields" and sh :: "sheap" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and C' :: "char list" where "a1 = INIT C'f__ (Cas__ # Csg__,True) \<leftarrow> fn__" and "a2 = (h, l, sh)" and "a3 = e'w__" and "a4 = s'" and "P \<turnstile> \<langle>RI (Cas__,Cas__\<bullet>\<^sub>sclinit([])) ; Csg__ \<leftarrow> fn__,(h, l, sh)\<rangle> \<Rightarrow> \<langle>e'w__,s'\<rangle>"   | e' :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and v :: "val" and h' :: "heap" and l' :: "sfields" and sh' :: "sheap" and C :: "char list" and sfs :: "sfields" and i :: "init_state" and sh'' :: "sheap" and C' :: "char list" and Cs :: "char list list" and e :: "char list exp" and e\<^sub>1 :: "char list exp" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" where "a1 = RI (Cat__,e'x__) ; Csh__ \<leftarrow> fo__" and "a2 = se__" and "a3 = e\<^sub>1''''''''''''''''''__" and "a4 = s\<^sub>1'''''''''''''''''''''''''''''''''__" and "P \<turnstile> \<langle>e'x__,se__\<rangle> \<Rightarrow> \<langle>Val v,(h'e__, l'e__, sh'f__)\<rangle>" and "sh'f__ Cat__ = \<lfloor>(sfsl__, ib__)\<rfloor>" and "sh''a__ = sh'f__(Cat__ \<mapsto> (sfsl__, Done))" and "C' = last (Cat__ # Csh__)" and "P \<turnstile> \<langle>INIT C' (Csh__,True) \<leftarrow> fo__,(h'e__, l'e__, sh''a__)\<rangle> \<Rightarrow> \<langle>e\<^sub>1''''''''''''''''''__,s\<^sub>1'''''''''''''''''''''''''''''''''__\<rangle>"   | e' :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and a :: "char list exp" and h' :: "heap" and l' :: "sfields" and sh' :: "sheap" and C :: "char list" and sfs :: "sfields" and i :: "init_state" and sh'' :: "sheap" and D :: "char list" and Cs :: "char list list" and e :: "char list exp" and e\<^sub>1 :: "char list exp" and s\<^sub>1 :: "heap \<times> sfields \<times> sheap" where "a1 = RI (Cau__,e'y__) ; D # Cs \<leftarrow> fp__" and "a2 = sf__" and "a3 = e\<^sub>1" and "a4 = s\<^sub>1" and "P \<turnstile> \<langle>e'y__,sf__\<rangle> \<Rightarrow> \<langle>throw au__,(h'f__, l'f__, sh'g__)\<rangle>" and "sh'g__ Cau__ = \<lfloor>(sfsm__, ic__)\<rfloor>" and "sh''b__ = sh'g__(Cau__ \<mapsto> (sfsm__, Error))" and "P \<turnstile> \<langle>RI (D,throw au__) ; Cs \<leftarrow> fp__,(h'f__, l'f__, sh''b__)\<rangle> \<Rightarrow> \<langle>e\<^sub>1,s\<^sub>1\<rangle>"   | e' :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and a :: "char list exp" and h' :: "heap" and l' :: "sfields" and sh' :: "sheap" and C :: "char list" and sfs :: "sfields" and i :: "init_state" and sh'' :: "sheap" and e :: "char list exp" where "a1 = RI (C,e') ; [] \<leftarrow> e" and "a2 = s" and "a3 = throw a" and "a4 = (h', l', sh'')" and "P \<turnstile> \<langle>e',s\<rangle> \<Rightarrow> \<langle>throw a,(h', l', sh')\<rangle>" and "sh' C = \<lfloor>(sfs, i)\<rfloor>" and "sh'' = sh'(C \<mapsto> (sfs, Error))"