cases: fixes a1 :: "char list exp"   and a2 :: "heap \<times> sfields \<times> sheap"   and a3 :: "bool"   and a4 :: "char list exp"   and a5 :: "heap \<times> sfields \<times> sheap"   and a6 :: "bool"   and P :: "(char list list \<times> char list exp) prog" assumes "P \<turnstile> \<langle>a1,a2,a3\<rangle> \<rightarrow> \<langle>a4,a5,a6\<rangle>" obtains h :: "heap" and a :: "nat" and C :: "char list" and FDTs :: "((char list \<times> char list) \<times> staticb \<times> ty) list" and h' :: "heap" and l :: "sfields" and sh :: "sheap" where "a1 = new C__" and "a2 = (h__, l__, sh__)" and "a3 = True" and "a4 = addr a__" and "a5 = (h'__, l__, sh__)" and "a6 = False" and "new_Addr h__ = \<lfloor>a__\<rfloor>" and "P \<turnstile> C__ has_fields FDTs" and "h'__ = h__(a__ \<mapsto> blank P C__)"   | h :: "heap" and C :: "char list" and l :: "sfields" and sh :: "sheap" where "a1 = new Ca__" and "a2 = (ha__, la__, sha__)" and "a3 = True" and "a4 = THROW OutOfMemory" and "a5 = (ha__, la__, sha__)" and "a6 = False" and "new_Addr ha__ = None" and "is_class P Ca__"   | sh :: "sheap" and C :: "char list" and sfs :: "sfields" and h :: "heap" and l :: "sfields" where "a1 = new Cb__" and "a2 = (hb__, lb__, shb__)" and "a3 = False" and "a4 = new Cb__" and "a5 = (hb__, lb__, shb__)" and "a6 = True" and "shb__ Cb__ = \<lfloor>(sfs__, Done)\<rfloor>"   | sh :: "sheap" and C :: "char list" and h :: "heap" and l :: "sfields" where "a1 = new Cc__" and "a2 = (hc__, lc__, shc__)" and "a3 = False" and "a4 = INIT Cc__ ([Cc__],False) \<leftarrow> new Cc__" and "a5 = (hc__, lc__, shc__)" and "a6 = False" and "\<nexists>sfs. shc__ Cc__ = \<lfloor>(sfs, Done)\<rfloor>" and "is_class P Cc__"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and C :: "char list" where "a1 = Cast Cd__ ea__" and "a2 = sa__" and "a3 = b__" and "a4 = Cast Cd__ e'a__" and "a5 = s'a__" and "a6 = b'__" and "P \<turnstile> \<langle>ea__,sa__,b__\<rangle> \<rightarrow> \<langle>e'a__,s'a__,b'__\<rangle>"   | C :: "char list" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Cast Ce__ null" and "a2 = sb__" and "a3 = ba__" and "a4 = null" and "a5 = sb__" and "a6 = ba__"   | h :: "heap" and a :: "nat" and D :: "char list" and fs :: "Objects.fields" and C :: "char list" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = Cast Cf__ (addr aa__)" and "a2 = (hd__, ld__, shd__)" and "a3 = bb__" and "a4 = addr aa__" and "a5 = (hd__, ld__, shd__)" and "a6 = bb__" and "hd__ aa__ = \<lfloor>(D__, fs__)\<rfloor>" and "P \<turnstile> D__ \<preceq>\<^sup>* Cf__"   | h :: "heap" and a :: "nat" and D :: "char list" and fs :: "Objects.fields" and C :: "char list" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = Cast Cg__ (addr ab__)" and "a2 = (he__, le__, she__)" and "a3 = bc__" and "a4 = THROW ClassCast" and "a5 = (he__, le__, she__)" and "a6 = bc__" and "he__ ab__ = \<lfloor>(Da__, fsa__)\<rfloor>" and "(Da__, Cg__) \<notin> (subcls1 P)\<^sup>*"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and bop :: "bop" and e\<^sub>2 :: "char list exp" where "a1 = eb__ \<guillemotleft>bop__\<guillemotright> e\<^sub>2__" and "a2 = sc__" and "a3 = bd__" and "a4 = e'b__ \<guillemotleft>bop__\<guillemotright> e\<^sub>2__" and "a5 = s'b__" and "a6 = b'a__" and "P \<turnstile> \<langle>eb__,sc__,bd__\<rangle> \<rightarrow> \<langle>e'b__,s'b__,b'a__\<rangle>"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and v\<^sub>1 :: "val" and bop :: "bop" where "a1 = Val v\<^sub>1__ \<guillemotleft>bopa__\<guillemotright> ec__" and "a2 = sd__" and "a3 = be__" and "a4 = Val v\<^sub>1__ \<guillemotleft>bopa__\<guillemotright> e'c__" and "a5 = s'c__" and "a6 = b'b__" and "P \<turnstile> \<langle>ec__,sd__,be__\<rangle> \<rightarrow> \<langle>e'c__,s'c__,b'b__\<rangle>"   | bop :: "bop" and v\<^sub>1 :: "val" and v\<^sub>2 :: "val" and v :: "val" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Val v\<^sub>1'__ \<guillemotleft>bopb__\<guillemotright> Val v\<^sub>2" and "a2 = se__" and "a3 = bf__" and "a4 = Val v__" and "a5 = se__" and "a6 = bf__" and "binop (bopb__, v\<^sub>1'__, v\<^sub>2) = \<lfloor>v__\<rfloor>"   | l :: "sfields" and V :: "char list" and v :: "val" and h :: "heap" and sh :: "sheap" and b :: "bool" where "a1 = Var V__" and "a2 = (hf__, lf__, shf__)" and "a3 = bg__" and "a4 = Val va__" and "a5 = (hf__, lf__, shf__)" and "a6 = bg__" and "lf__ V__ = \<lfloor>va__\<rfloor>"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and V :: "char list" where "a1 = Va__:=ed__" and "a2 = sf__" and "a3 = bh__" and "a4 = Va__:=e'd__" and "a5 = s'd__" and "a6 = b'c__" and "P \<turnstile> \<langle>ed__,sf__,bh__\<rangle> \<rightarrow> \<langle>e'd__,s'd__,b'c__\<rangle>"   | V :: "char list" and v :: "val" and h :: "heap" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = Vb__:=Val vb__" and "a2 = (hg__, lg__, shg__)" and "a3 = bi__" and "a4 = unit" and "a5 = (hg__, lg__(Vb__ \<mapsto> vb__), shg__)" and "a6 = bi__"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and F :: "char list" and D :: "char list" where "a1 = ee__\<bullet>F__{Db__}" and "a2 = sg__" and "a3 = bj__" and "a4 = e'e__\<bullet>F__{Db__}" and "a5 = s'e__" and "a6 = b'd__" and "P \<turnstile> \<langle>ee__,sg__,bj__\<rangle> \<rightarrow> \<langle>e'e__,s'e__,b'd__\<rangle>"   | h :: "heap" and a :: "nat" and C :: "char list" and fs :: "Objects.fields" and F :: "char list" and D :: "char list" and v :: "val" and t :: "ty" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = addr ac__\<bullet>Fa__{Dc__}" and "a2 = (hh__, lh__, shh__)" and "a3 = bk__" and "a4 = Val vc__" and "a5 = (hh__, lh__, shh__)" and "a6 = bk__" and "hh__ ac__ = \<lfloor>(Ch__, fsb__)\<rfloor>" and "fsb__ (Fa__, Dc__) = \<lfloor>vc__\<rfloor>" and "P \<turnstile> Ch__ has Fa__,NonStatic:t__ in Dc__"   | F :: "char list" and D :: "char list" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = null\<bullet>Fb__{Dd__}" and "a2 = si__" and "a3 = bl__" and "a4 = THROW NullPointer" and "a5 = si__" and "a6 = bl__"   | h :: "heap" and a :: "nat" and C :: "char list" and fs :: "Objects.fields" and F :: "char list" and D :: "char list" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = addr ad__\<bullet>Fc__{De__}" and "a2 = (hi__, li__, shi__)" and "a3 = bm__" and "a4 = THROW NoSuchFieldError" and "a5 = (hi__, li__, shi__)" and "a6 = bm__" and "hi__ ad__ = \<lfloor>(Ci__, fsc__)\<rfloor>" and "\<nexists>b t. P \<turnstile> Ci__ has Fc__,b:t in De__"   | h :: "heap" and a :: "nat" and C :: "char list" and fs :: "Objects.fields" and F :: "char list" and t :: "ty" and D :: "char list" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = addr ae__\<bullet>Fd__{Df__}" and "a2 = (hj__, lj__, shj__)" and "a3 = bn__" and "a4 = THROW IncompatibleClassChangeError" and "a5 = (hj__, lj__, shj__)" and "a6 = bn__" and "hj__ ae__ = \<lfloor>(Cj__, fsd__)\<rfloor>" and "P \<turnstile> Cj__ 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 i :: "init_state" and v :: "val" and h :: "heap" and l :: "sfields" where "a1 = Ck__\<bullet>\<^sub>sFe__{Dg__}" and "a2 = (hk__, lk__, shk__)" and "a3 = True" and "a4 = Val vd__" and "a5 = (hk__, lk__, shk__)" and "a6 = False" and "P \<turnstile> Ck__ has Fe__,Static:tb__ in Dg__" and "shk__ Dg__ = \<lfloor>(sfsa__, i__)\<rfloor>" and "sfsa__ Fe__ = \<lfloor>vd__\<rfloor>"   | C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and sh :: "sheap" and sfs :: "sfields" and h :: "heap" and l :: "sfields" where "a1 = Cl__\<bullet>\<^sub>sFf__{Dh__}" and "a2 = (hl__, ll__, shl__)" and "a3 = False" and "a4 = Cl__\<bullet>\<^sub>sFf__{Dh__}" and "a5 = (hl__, ll__, shl__)" and "a6 = True" and "P \<turnstile> Cl__ has Ff__,Static:tc__ in Dh__" and "shl__ Dh__ = \<lfloor>(sfsb__, Done)\<rfloor>"   | C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and sh :: "sheap" and h :: "heap" and l :: "sfields" where "a1 = Cm__\<bullet>\<^sub>sFg__{Di__}" and "a2 = (hm__, lm__, shm__)" and "a3 = False" and "a4 = INIT Di__ ([Di__],False) \<leftarrow> Cm__\<bullet>\<^sub>sFg__{Di__}" and "a5 = (hm__, lm__, shm__)" and "a6 = False" and "P \<turnstile> Cm__ has Fg__,Static:td__ in Di__" and "\<nexists>sfs. shm__ Di__ = \<lfloor>(sfs, Done)\<rfloor>"   | C :: "char list" and F :: "char list" and D :: "char list" and h :: "heap" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = Cn__\<bullet>\<^sub>sFh__{Dj__}" and "a2 = (hn__, ln__, shn__)" and "a3 = bo__" and "a4 = THROW NoSuchFieldError" and "a5 = (hn__, ln__, shn__)" and "a6 = False" and "\<nexists>b t. P \<turnstile> Cn__ has Fh__,b:t in Dj__"   | C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and h :: "heap" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = Co__\<bullet>\<^sub>sFi__{Dk__}" and "a2 = (ho__, lo__, sho__)" and "a3 = bp__" and "a4 = THROW IncompatibleClassChangeError" and "a5 = (ho__, lo__, sho__)" and "a6 = False" and "P \<turnstile> Co__ has Fi__,NonStatic:te__ in Dk__"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and F :: "char list" and D :: "char list" and e\<^sub>2 :: "char list exp" where "a1 = ef__\<bullet>Fj__{Dl__} := e\<^sub>2'__" and "a2 = sj__" and "a3 = bq__" and "a4 = e'f__\<bullet>Fj__{Dl__} := e\<^sub>2'__" and "a5 = s'f__" and "a6 = b'e__" and "P \<turnstile> \<langle>ef__,sj__,bq__\<rangle> \<rightarrow> \<langle>e'f__,s'f__,b'e__\<rangle>"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and v :: "val" and F :: "char list" and D :: "char list" where "a1 = Val ve__\<bullet>Fk__{Dm__} := eg__" and "a2 = sk__" and "a3 = br__" and "a4 = Val ve__\<bullet>Fk__{Dm__} := e'g__" and "a5 = s'g__" and "a6 = b'f__" and "P \<turnstile> \<langle>eg__,sk__,br__\<rangle> \<rightarrow> \<langle>e'g__,s'g__,b'f__\<rangle>"   | C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and h :: "heap" and a :: "nat" and fs :: "Objects.fields" and v :: "val" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = addr af__\<bullet>Fl__{Dn__} := Val vf__" and "a2 = (hp__, lp__, shp__)" and "a3 = bs__" and "a4 = unit" and "a5 = (hp__(af__ \<mapsto> (Cp__, fse__((Fl__, Dn__) \<mapsto> vf__))), lp__, shp__)" and "a6 = bs__" and "P \<turnstile> Cp__ has Fl__,NonStatic:tf__ in Dn__" and "hp__ af__ = \<lfloor>(Cp__, fse__)\<rfloor>"   | F :: "char list" and D :: "char list" and v :: "val" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = null\<bullet>Fm__{Do__} := Val vg__" and "a2 = sl__" and "a3 = bt__" and "a4 = THROW NullPointer" and "a5 = sl__" and "a6 = bt__"   | h :: "heap" and a :: "nat" and C :: "char list" and fs :: "Objects.fields" and F :: "char list" and D :: "char list" and v :: "val" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = addr ag__\<bullet>Fn__{Dp__} := Val vh__" and "a2 = (hq__, lq__, shq__)" and "a3 = bu__" and "a4 = THROW NoSuchFieldError" and "a5 = (hq__, lq__, shq__)" and "a6 = bu__" and "hq__ ag__ = \<lfloor>(Cq__, fsf__)\<rfloor>" and "\<nexists>b t. P \<turnstile> Cq__ has Fn__,b:t in Dp__"   | h :: "heap" and a :: "nat" and C :: "char list" and fs :: "Objects.fields" and F :: "char list" and t :: "ty" and D :: "char list" and v :: "val" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = addr ah__\<bullet>Fo__{Dq__} := Val vi__" and "a2 = (hr__, lr__, shr__)" and "a3 = bv__" and "a4 = THROW IncompatibleClassChangeError" and "a5 = (hr__, lr__, shr__)" and "a6 = bv__" and "hr__ ah__ = \<lfloor>(Cr__, fsg__)\<rfloor>" and "P \<turnstile> Cr__ has Fo__,Static:tg__ in Dq__"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and C :: "char list" and F :: "char list" and D :: "char list" where "a1 = Cs__\<bullet>\<^sub>sFp__{Dr__} := eh__" and "a2 = sm__" and "a3 = bw__" and "a4 = Cs__\<bullet>\<^sub>sFp__{Dr__} := e'h__" and "a5 = s'h__" and "a6 = b'g__" and "P \<turnstile> \<langle>eh__,sm__,bw__\<rangle> \<rightarrow> \<langle>e'h__,s'h__,b'g__\<rangle>"   | C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and sh :: "sheap" and sfs :: "sfields" and i :: "init_state" and sfs' :: "sfields" and v :: "val" and sh' :: "sheap" and h :: "heap" and l :: "sfields" where "a1 = Ct__\<bullet>\<^sub>sFq__{Ds__} := Val vj__" and "a2 = (hs__, ls__, shs__)" and "a3 = True" and "a4 = unit" and "a5 = (hs__, ls__, sh'__)" and "a6 = False" and "P \<turnstile> Ct__ has Fq__,Static:th__ in Ds__" and "shs__ Ds__ = \<lfloor>(sfsc__, ia__)\<rfloor>" and "sfs' = sfsc__(Fq__ \<mapsto> vj__)" and "sh'__ = shs__(Ds__ \<mapsto> (sfs', ia__))"   | 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 = Cu__\<bullet>\<^sub>sFr__{Dt__} := Val vk__" and "a2 = (ht__, lt__, sht__)" and "a3 = False" and "a4 = Cu__\<bullet>\<^sub>sFr__{Dt__} := Val vk__" and "a5 = (ht__, lt__, sht__)" and "a6 = True" and "P \<turnstile> Cu__ has Fr__,Static:ti__ in Dt__" and "sht__ Dt__ = \<lfloor>(sfsd__, Done)\<rfloor>"   | C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and sh :: "sheap" and v :: "val" and h :: "heap" and l :: "sfields" where "a1 = Cv__\<bullet>\<^sub>sFs__{Du__} := Val vl__" and "a2 = (hu__, lu__, shu__)" and "a3 = False" and "a4 = INIT Du__ ([Du__],False) \<leftarrow> Cv__\<bullet>\<^sub>sFs__{Du__} := Val vl__" and "a5 = (hu__, lu__, shu__)" and "a6 = False" and "P \<turnstile> Cv__ has Fs__,Static:tj__ in Du__" and "\<nexists>sfs. shu__ Du__ = \<lfloor>(sfs, Done)\<rfloor>"   | C :: "char list" and F :: "char list" and D :: "char list" and v :: "val" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Cw__\<bullet>\<^sub>sFt__{Dv__} := Val vm__" and "a2 = sn__" and "a3 = bx__" and "a4 = THROW NoSuchFieldError" and "a5 = sn__" and "a6 = False" and "\<nexists>b t. P \<turnstile> Cw__ has Ft__,b:t in Dv__"   | C :: "char list" and F :: "char list" and t :: "ty" and D :: "char list" and v :: "val" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Cx__\<bullet>\<^sub>sFu__{Dw__} := Val vn__" and "a2 = so__" and "a3 = by__" and "a4 = THROW IncompatibleClassChangeError" and "a5 = so__" and "a6 = False" and "P \<turnstile> Cx__ has Fu__,NonStatic:t in Dw__"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and M :: "char list" and es :: "char list exp list" where "a1 = ei__\<bullet>M__(es__)" and "a2 = sp__" and "a3 = bz__" and "a4 = e'i__\<bullet>M__(es__)" and "a5 = s'i__" and "a6 = b'h__" and "P \<turnstile> \<langle>ei__,sp__,bz__\<rangle> \<rightarrow> \<langle>e'i__,s'i__,b'h__\<rangle>"   | es :: "char list exp list" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and es' :: "char list exp list" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and v :: "val" and M :: "char list" where "a1 = Val vo__\<bullet>Ma__(esa__)" and "a2 = sq__" and "a3 = ca__" and "a4 = Val vo__\<bullet>Ma__(es'__)" and "a5 = s'j__" and "a6 = b'i__" and "P \<turnstile> \<langle>esa__,sq__,ca__\<rangle> [\<rightarrow>] \<langle>es'__,s'j__,b'i__\<rangle>"   | h :: "heap" and a :: "nat" 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 vs :: "val list" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = addr ai__\<bullet>Mb__(map Val vs__)" and "a2 = (hv__, lv__, shv__)" and "a3 = cb__" and "a4 = blocks (this # pns__, Class Dx__ # Ts__, Addr ai__ # vs__, body__)" and "a5 = (hv__, lv__, shv__)" and "a6 = cb__" and "hv__ ai__ = \<lfloor>(Cy__, fsh__)\<rfloor>" and "P \<turnstile> Cy__ sees Mb__, NonStatic :  Ts__\<rightarrow>Ta__ = (pns__, body__) in Dx__" and "length vs__ = length pns__" and "length Ts__ = length pns__"   | M :: "char list" and vs :: "val list" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = null\<bullet>Mc__(map Val vsa__)" and "a2 = sr__" and "a3 = cc__" and "a4 = THROW NullPointer" and "a5 = sr__" and "a6 = cc__"   | h :: "heap" and a :: "nat" and C :: "char list" and fs :: "Objects.fields" and M :: "char list" and vs :: "val list" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = addr aj__\<bullet>Md__(map Val vsb__)" and "a2 = (hw__, lw__, shw__)" and "a3 = cd__" and "a4 = THROW NoSuchMethodError" and "a5 = (hw__, lw__, shw__)" and "a6 = cd__" and "hw__ aj__ = \<lfloor>(Cz__, fsi__)\<rfloor>" and "\<nexists>b Ts T m D. P \<turnstile> Cz__ sees Md__, b :  Ts\<rightarrow>T = m in D"   | h :: "heap" and a :: "nat" 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" and vs :: "val list" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = addr ak__\<bullet>Me__(map Val vsc__)" and "a2 = (hx__, lx__, shx__)" and "a3 = ce__" and "a4 = THROW IncompatibleClassChangeError" and "a5 = (hx__, lx__, shx__)" and "a6 = ce__" and "hx__ ak__ = \<lfloor>(Caa__, fsj__)\<rfloor>" and "P \<turnstile> Caa__ sees Me__, Static :  Tsa__\<rightarrow>Tb__ = m__ in Dy__"   | es :: "char list exp list" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and es' :: "char list exp list" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and C :: "char list" and M :: "char list" where "a1 = Cab__\<bullet>\<^sub>sMf__(esb__)" and "a2 = ss__" and "a3 = cf__" and "a4 = Cab__\<bullet>\<^sub>sMf__(es'a__)" and "a5 = s'k__" and "a6 = b'j__" and "P \<turnstile> \<langle>esb__,ss__,cf__\<rangle> [\<rightarrow>] \<langle>es'a__,s'k__,b'j__\<rangle>"   | 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 vs :: "val list" and s :: "heap \<times> sfields \<times> sheap" where "a1 = Cac__\<bullet>\<^sub>sMg__(map Val vsd__)" and "a2 = st__" and "a3 = True" and "a4 = blocks (pnsa__, Tsb__, vsd__, bodya__)" and "a5 = st__" and "a6 = False" and "P \<turnstile> Cac__ sees Mg__, Static :  Tsb__\<rightarrow>Tc__ = (pnsa__, bodya__) in Dz__" and "length vsd__ = length pnsa__" and "length Tsb__ = length pnsa__"   | 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 sh :: "sheap" and sfs :: "sfields" and vs :: "val list" and h :: "heap" and l :: "sfields" where "a1 = Cad__\<bullet>\<^sub>sMh__(map Val vse__)" and "a2 = (hy__, ly__, shy__)" and "a3 = False" and "a4 = Cad__\<bullet>\<^sub>sMh__(map Val vse__)" and "a5 = (hy__, ly__, shy__)" and "a6 = True" and "P \<turnstile> Cad__ sees Mh__, Static :  Tsc__\<rightarrow>Td__ = (pnsb__, bodyb__) in Daa__" and "shy__ Daa__ = \<lfloor>(sfse__, Done)\<rfloor> \<or> Mh__ = clinit \<and> shy__ Daa__ = \<lfloor>(sfse__, Processing)\<rfloor>"   | 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 sh :: "sheap" and vs :: "val list" and h :: "heap" and l :: "sfields" where "a1 = Cae__\<bullet>\<^sub>sMi__(map Val vsf__)" and "a2 = (hz__, lz__, shz__)" and "a3 = False" and "a4 = INIT Dab__ ([Dab__],False) \<leftarrow> Cae__\<bullet>\<^sub>sMi__(map Val vsf__)" and "a5 = (hz__, lz__, shz__)" and "a6 = False" and "P \<turnstile> Cae__ sees Mi__, Static :  Tsd__\<rightarrow>Te__ = (pns, body) in Dab__" and "\<nexists>sfs. shz__ Dab__ = \<lfloor>(sfs, Done)\<rfloor>" and "Mi__ \<noteq> clinit"   | C :: "char list" and M :: "char list" and vs :: "val list" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Caf__\<bullet>\<^sub>sMj__(map Val vsg__)" and "a2 = su__" and "a3 = cg__" and "a4 = THROW NoSuchMethodError" and "a5 = su__" and "a6 = False" and "\<nexists>b Ts T m D. P \<turnstile> Caf__ sees Mj__, b :  Ts\<rightarrow>T = m in D"   | 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" and vs :: "val list" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Cag__\<bullet>\<^sub>sMk__(map Val vsh__)" and "a2 = sv__" and "a3 = ch__" and "a4 = THROW IncompatibleClassChangeError" and "a5 = sv__" and "a6 = False" and "P \<turnstile> Cag__ sees Mk__, NonStatic :  Ts\<rightarrow>Tf__ = m in Dac__"   | e :: "char list exp" and h :: "heap" and l :: "sfields" and V :: "char list" and sh :: "sheap" and b :: "bool" and e' :: "char list exp" and h' :: "heap" and l' :: "sfields" and sh' :: "sheap" and b' :: "bool" and T :: "ty" where "a1 = {Vc__:Tg__; ej__}" and "a2 = (ib__, mb__, sia__)" and "a3 = ci__" and "a4 = {Vc__:Tg__; e'j__}" and "a5 = (h'a__, l'__(Vc__ := mb__ Vc__), sh'a__)" and "a6 = b'k__" and "P \<turnstile> \<langle>ej__,(ib__, mb__(Vc__ := None), sia__),ci__\<rangle> \<rightarrow> \<langle>e'j__,(h'a__, l'__, sh'a__),b'k__\<rangle>" and "l'__ Vc__ = None" and "\<not> assigned Vc__ ej__"   | e :: "char list exp" and h :: "heap" and l :: "sfields" and V :: "char list" and sh :: "sheap" and b :: "bool" and e' :: "char list exp" and h' :: "heap" and l' :: "sfields" and sh' :: "sheap" and b' :: "bool" and v :: "val" and T :: "ty" where "a1 = {Vd__:Th__; ek__}" and "a2 = (ic__, mc__, sib__)" and "a3 = cj__" and "a4 = {Vd__:Th__; Vd__:=Val vp__;; e'k__}" and "a5 = (h'b__, l'a__(Vd__ := mc__ Vd__), sh'b__)" and "a6 = b'l__" and "P \<turnstile> \<langle>ek__,(ic__, mc__(Vd__ := None), sib__),cj__\<rangle> \<rightarrow> \<langle>e'k__,(h'b__, l'a__, sh'b__),b'l__\<rangle>" and "l'a__ Vd__ = \<lfloor>vp__\<rfloor>" and "\<not> assigned Vd__ ek__"   | e :: "char list exp" and h :: "heap" and l :: "sfields" and V :: "char list" and v :: "val" and sh :: "sheap" and b :: "bool" and e' :: "char list exp" and h' :: "heap" and l' :: "sfields" and sh' :: "sheap" and b' :: "bool" and v' :: "val" and T :: "ty" where "a1 = {Ve__:Ti__; Ve__:=Val vq__;; el__}" and "a2 = (id__, md__, sic__)" and "a3 = ck__" and "a4 = {Ve__:Ti__; Ve__:=Val v';; e'l__}" and "a5 = (h', l'(Ve__ := md__ Ve__), sh'c__)" and "a6 = b'm__" and "P \<turnstile> \<langle>el__,(id__, md__(Ve__ \<mapsto> vq__), sic__),ck__\<rangle> \<rightarrow> \<langle>e'l__,(h', l', sh'c__),b'm__\<rangle>" and "l' Ve__ = \<lfloor>v'\<rfloor>"   | V :: "char list" and T :: "ty" and u :: "val" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = {Vf__:Tj__; Val u__}" and "a2 = sw__" and "a3 = cl__" and "a4 = Val u__" and "a5 = sw__" and "a6 = cl__"   | V :: "char list" and T :: "ty" and v :: "val" and u :: "val" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = {Vg__:Tk__; Vg__:=Val vr__;; Val u}" and "a2 = sx__" and "a3 = cm__" and "a4 = Val u" and "a5 = sx__" and "a6 = cm__"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and e\<^sub>2 :: "char list exp" where "a1 = em__;; e\<^sub>2''__" and "a2 = sy__" and "a3 = cn__" and "a4 = e'm__;; e\<^sub>2''__" and "a5 = s'l__" and "a6 = b'n__" and "P \<turnstile> \<langle>em__,sy__,cn__\<rangle> \<rightarrow> \<langle>e'm__,s'l__,b'n__\<rangle>"   | v :: "val" and e\<^sub>2 :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Val vt__;; e\<^sub>2'''__" and "a2 = sz__" and "a3 = co__" and "a4 = e\<^sub>2'''__" and "a5 = sz__" and "a6 = co__"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and e\<^sub>1 :: "char list exp" and e\<^sub>2 :: "char list exp" where "a1 = if (en__) e\<^sub>1__ else e\<^sub>2''''__" and "a2 = tl__" and "a3 = cp__" and "a4 = if (e'n__) e\<^sub>1__ else e\<^sub>2''''__" and "a5 = s'm__" and "a6 = b'o__" and "P \<turnstile> \<langle>en__,tl__,cp__\<rangle> \<rightarrow> \<langle>e'n__,s'm__,b'o__\<rangle>"   | e\<^sub>1 :: "char list exp" and e\<^sub>2 :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = if (true) e\<^sub>1'__ else e\<^sub>2'''''__" and "a2 = tm__" and "a3 = cq__" and "a4 = e\<^sub>1'__" and "a5 = tm__" and "a6 = cq__"   | e\<^sub>1 :: "char list exp" and e\<^sub>2 :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = if (false) e\<^sub>1''__ else e\<^sub>2''''''__" and "a2 = tn__" and "a3 = cr__" and "a4 = e\<^sub>2''''''__" and "a5 = tn__" and "a6 = cr__"   | b :: "char list exp" and c :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b' :: "bool" where "a1 = while (cs__) c" and "a2 = to__" and "a3 = b'p__" and "a4 = if (cs__) (c;; while (cs__) c) else unit" and "a5 = to__" and "a6 = b'p__"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" where "a1 = throw eo__" and "a2 = tp__" and "a3 = ct__" and "a4 = throw e'o__" and "a5 = s'n__" and "a6 = b'q__" and "P \<turnstile> \<langle>eo__,tp__,ct__\<rangle> \<rightarrow> \<langle>e'o__,s'n__,b'q__\<rangle>"   | s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = throw null" and "a2 = tq__" and "a3 = cu__" and "a4 = THROW NullPointer" and "a5 = tq__" and "a6 = cu__"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and C :: "char list" and V :: "char list" and e\<^sub>2 :: "char list exp" where "a1 = try ep__ catch(Cah__ Vh__) e\<^sub>2'''''''__" and "a2 = tr__" and "a3 = cv__" and "a4 = try e'p__ catch(Cah__ Vh__) e\<^sub>2'''''''__" and "a5 = s'o__" and "a6 = b'r__" and "P \<turnstile> \<langle>ep__,tr__,cv__\<rangle> \<rightarrow> \<langle>e'p__,s'o__,b'r__\<rangle>"   | v :: "val" and C :: "char list" and V :: "char list" and e\<^sub>2 :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = try Val vu__ catch(Cai__ Vi__) e\<^sub>2''''''''__" and "a2 = ts__" and "a3 = cw__" and "a4 = Val vu__" and "a5 = ts__" and "a6 = cw__"   | s :: "heap \<times> sfields \<times> sheap" and a :: "nat" and D :: "char list" and fs :: "Objects.fields" and C :: "char list" and V :: "char list" and e\<^sub>2 :: "char list exp" and b :: "bool" where "a1 = try Throw al__ catch(Caj__ Vj__) e\<^sub>2'''''''''__" and "a2 = tt__" and "a3 = cx__" and "a4 = {Vj__:Class Caj__; Vj__:=addr al__;; e\<^sub>2'''''''''__}" and "a5 = tt__" and "a6 = cx__" and "hp tt__ al__ = \<lfloor>(Dad__, fsk__)\<rfloor>" and "P \<turnstile> Dad__ \<preceq>\<^sup>* Caj__"   | s :: "heap \<times> sfields \<times> sheap" and a :: "nat" and D :: "char list" and fs :: "Objects.fields" and C :: "char list" and V :: "char list" and e\<^sub>2 :: "char list exp" and b :: "bool" where "a1 = try Throw am__ catch(Cak__ Vk__) e\<^sub>2''''''''''__" and "a2 = tu__" and "a3 = cy__" and "a4 = Throw am__" and "a5 = tu__" and "a6 = cy__" and "hp tu__ am__ = \<lfloor>(Dae__, fs)\<rfloor>" and "(Dae__, Cak__) \<notin> (subcls1 P)\<^sup>*"   | e :: "char list exp" and C :: "char list" and b :: "bool" and s :: "heap \<times> sfields \<times> sheap" and b' :: "bool" where "a1 = INIT Cal__ ([],cz__) \<leftarrow> eq__" and "a2 = tv__" and "a3 = b's__" and "a4 = eq__" and "a5 = tv__" and "a6 = icheck P Cal__ eq__" and "\<not> sub_RI eq__"   | 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 b :: "bool" where "a1 = INIT C'__ (Cam__ # Csa__,False) \<leftarrow> er__" and "a2 = (ie__, me__, sid__)" and "a3 = da__" and "a4 = INIT C'__ (Cam__ # Csa__,False) \<leftarrow> er__" and "a5 = (ie__, me__, sid__(Cam__ \<mapsto> (sblank P Cam__, Prepared)))" and "a6 = da__" and "sid__ Cam__ = None"   | 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 b :: "bool" where "a1 = INIT C'a__ (Can__ # Csb__,False) \<leftarrow> et__" and "a2 = (if__, mf__, sie__)" and "a3 = db__" and "a4 = INIT C'a__ (Csb__,True) \<leftarrow> et__" and "a5 = (if__, mf__, sie__)" and "a6 = db__" and "sie__ Can__ = \<lfloor>(sfsf__, Done)\<rfloor>"   | 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 b :: "bool" where "a1 = INIT C'b__ (Cao__ # Csc__,False) \<leftarrow> eu__" and "a2 = (ig__, mg__, sif__)" and "a3 = dc__" and "a4 = INIT C'b__ (Csc__,True) \<leftarrow> eu__" and "a5 = (ig__, mg__, sif__)" and "a6 = dc__" and "sif__ Cao__ = \<lfloor>(sfsg__, Processing)\<rfloor>"   | 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 b :: "bool" where "a1 = INIT C'c__ (Cap__ # Csd__,False) \<leftarrow> ev__" and "a2 = (ih__, mh__, sig__)" and "a3 = dd__" and "a4 = RI (Cap__,THROW NoClassDefFoundError) ; Csd__ \<leftarrow> ev__" and "a5 = (ih__, mh__, sig__)" and "a6 = dd__" and "sig__ Cap__ = \<lfloor>(sfsh__, Error)\<rfloor>"   | 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 b :: "bool" where "a1 = INIT C'd__ (Caq__ # Cse__,False) \<leftarrow> ew__" and "a2 = (ii__, mi__, sih__)" and "a3 = de__" and "a4 = INIT C'd__ (Caq__ # Cse__,True) \<leftarrow> ew__" and "a5 = (ii__, mi__, sh'd__)" and "a6 = de__" and "sih__ Caq__ = \<lfloor>(sfsi__, Prepared)\<rfloor>" and "Caq__ = Object" and "sh'd__ = sih__(Caq__ \<mapsto> (sfsi__, Processing))"   | 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 b :: "bool" where "a1 = INIT C'e__ (Car__ # Csf__,False) \<leftarrow> ex__" and "a2 = (ij__, mj__, sii__)" and "a3 = df__" and "a4 = INIT C'e__ (Daf__ # Car__ # Csf__,False) \<leftarrow> ex__" and "a5 = (ij__, mj__, sh'e__)" and "a6 = df__" and "sii__ Car__ = \<lfloor>(sfsj__, Prepared)\<rfloor>" and "Car__ \<noteq> Object" and "class P Car__ = \<lfloor>(Daf__, r)\<rfloor>" and "sh'e__ = sii__(Car__ \<mapsto> (sfsj__, Processing))"   | C' :: "char list" and C :: "char list" and Cs :: "char list list" and e :: "char list exp" and h :: "heap" and l :: "sfields" and sh :: "sheap" and b :: "bool" where "a1 = INIT C'f__ (Cas__ # Csg__,True) \<leftarrow> ey__" and "a2 = (ik__, mk__, sij__)" and "a3 = dg__" and "a4 = RI (Cas__,Cas__\<bullet>\<^sub>sclinit([])) ; Csg__ \<leftarrow> ey__" and "a5 = (ik__, mk__, sij__)" and "a6 = dg__"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" and e' :: "char list exp" and s' :: "heap \<times> sfields \<times> sheap" and b' :: "bool" and C :: "char list" and Cs :: "char list list" and e\<^sub>0 :: "char list exp" where "a1 = RI (Cat__,ez__) ; Csh__ \<leftarrow> e\<^sub>0" and "a2 = tw__" and "a3 = dh__" and "a4 = RI (Cat__,e') ; Csh__ \<leftarrow> e\<^sub>0" and "a5 = s'" and "a6 = b'" and "P \<turnstile> \<langle>ez__,tw__,dh__\<rangle> \<rightarrow> \<langle>e',s',b'\<rangle>"   | 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 v :: "val" and e :: "char list exp" and h :: "heap" and l :: "sfields" and b :: "bool" where "a1 = RI (Cau__,Val vv__) ; Csi__ \<leftarrow> fa__" and "a2 = (im__, ml__, sik__)" and "a3 = di__" and "a4 = INIT C' (Csi__,True) \<leftarrow> fa__" and "a5 = (im__, ml__, sh'f__)" and "a6 = di__" and "sik__ Cau__ = \<lfloor>(sfsk__, il__)\<rfloor>" and "sh'f__ = sik__(Cau__ \<mapsto> (sfsk__, Done))" and "C' = last (Cau__ # Csi__)"   | C :: "char list" and e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Cast Cav__ (throw fb__)" and "a2 = tx__" and "a3 = dj__" and "a4 = throw fb__" and "a5 = tx__" and "a6 = dj__"   | e :: "char list exp" and bop :: "bop" and e\<^sub>2 :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = throw fc__ \<guillemotleft>bopc__\<guillemotright> e\<^sub>2'''''''''''__" and "a2 = ty__" and "a3 = dk__" and "a4 = throw fc__" and "a5 = ty__" and "a6 = dk__"   | v\<^sub>1 :: "val" and bop :: "bop" and e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Val v\<^sub>1 \<guillemotleft>bop\<guillemotright> throw fd__" and "a2 = tz__" and "a3 = dl__" and "a4 = throw fd__" and "a5 = tz__" and "a6 = dl__"   | V :: "char list" and e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Vl__:=throw fe__" and "a2 = ub__" and "a3 = dm__" and "a4 = throw fe__" and "a5 = ub__" and "a6 = dm__"   | e :: "char list exp" and F :: "char list" and D :: "char list" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = throw ff__\<bullet>Fv__{Dag__}" and "a2 = uc__" and "a3 = dn__" and "a4 = throw ff__" and "a5 = uc__" and "a6 = dn__"   | e :: "char list exp" and F :: "char list" and D :: "char list" and e\<^sub>2 :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = throw fg__\<bullet>Fw__{Dah__} := e\<^sub>2''''''''''''__" and "a2 = ud__" and "a3 = do__" and "a4 = throw fg__" and "a5 = ud__" and "a6 = do__"   | v :: "val" and F :: "char list" and D :: "char list" and e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Val vw__\<bullet>Fx__{Dai__} := throw fh__" and "a2 = ue__" and "a3 = dp__" and "a4 = throw fh__" and "a5 = ue__" and "a6 = dp__"   | C :: "char list" and F :: "char list" and D :: "char list" and e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Caw__\<bullet>\<^sub>sF{Daj__} := throw fi__" and "a2 = uf__" and "a3 = dq__" and "a4 = throw fi__" and "a5 = uf__" and "a6 = dq__"   | e :: "char list exp" and M :: "char list" and es :: "char list exp list" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = throw fj__\<bullet>Ml__(esc__)" and "a2 = ug__" and "a3 = dr__" and "a4 = throw fj__" and "a5 = ug__" and "a6 = dr__"   | es :: "char list exp list" and vs :: "val list" and e :: "char list exp" and es' :: "char list exp list" and v :: "val" and M :: "char list" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Val vx__\<bullet>Mm__(esd__)" and "a2 = uh__" and "a3 = ds__" and "a4 = throw fk__" and "a5 = uh__" and "a6 = ds__" and "esd__ = map Val vsi__ @ throw fk__ # es'b__"   | es :: "char list exp list" and vs :: "val list" and e :: "char list exp" and es' :: "char list exp list" and C :: "char list" and M :: "char list" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = Cax__\<bullet>\<^sub>sM(es)" and "a2 = ui__" and "a3 = dt__" and "a4 = throw fl__" and "a5 = ui__" and "a6 = dt__" and "es = map Val vs @ throw fl__ # es'"   | V :: "char list" and T :: "ty" and a :: "nat" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = {Vm__:Tl__; Throw an__}" and "a2 = uj__" and "a3 = du__" and "a4 = Throw an__" and "a5 = uj__" and "a6 = du__"   | V :: "char list" and T :: "ty" and v :: "val" and a :: "nat" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = {V:T; V:=Val v;; Throw ao__}" and "a2 = uk__" and "a3 = dv__" and "a4 = Throw ao__" and "a5 = uk__" and "a6 = dv__"   | e :: "char list exp" and e\<^sub>2 :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = throw fm__;; e\<^sub>2'''''''''''''__" and "a2 = ul__" and "a3 = dw__" and "a4 = throw fm__" and "a5 = ul__" and "a6 = dw__"   | e :: "char list exp" and e\<^sub>1 :: "char list exp" and e\<^sub>2 :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = if (throw fn__) e\<^sub>1 else e\<^sub>2" and "a2 = um__" and "a3 = dx__" and "a4 = throw fn__" and "a5 = um__" and "a6 = dx__"   | e :: "char list exp" and s :: "heap \<times> sfields \<times> sheap" and b :: "bool" where "a1 = throw (throw fo__)" and "a2 = s" and "a3 = dy__" and "a4 = throw fo__" and "a5 = s" and "a6 = dy__"   | sh :: "sheap" and C :: "char list" and sfs :: "sfields" and i :: "init_state" and sh' :: "sheap" and a :: "nat" and D :: "char list" and Cs :: "char list list" and e :: "char list exp" and h :: "heap" and l :: "sfields" and b :: "bool" where "a1 = RI (Cay__,Throw ap__) ; D # Cs \<leftarrow> fp__" and "a2 = (io__, mm__, sil__)" and "a3 = dz__" and "a4 = RI (D,Throw ap__) ; Cs \<leftarrow> fp__" and "a5 = (io__, mm__, sh'g__)" and "a6 = dz__" and "sil__ Cay__ = \<lfloor>(sfsl__, in__)\<rfloor>" and "sh'g__ = sil__(Cay__ \<mapsto> (sfsl__, Error))"   | sh :: "sheap" and C :: "char list" and sfs :: "sfields" and i :: "init_state" and sh' :: "sheap" and a :: "nat" and e :: "char list exp" and h :: "heap" and l :: "sfields" and b :: "bool" where "a1 = RI (C,Throw a) ; [] \<leftarrow> e" and "a2 = (h, l, sh)" and "a3 = b" and "a4 = Throw a" and "a5 = (h, l, sh')" and "a6 = b" and "sh C = \<lfloor>(sfs, i)\<rfloor>" and "sh' = sh(C \<mapsto> (sfs, Error))"