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