cases: fixes \<Gamma> :: "'d \<Rightarrow> ('e, 'd, 'f) com option"   and a1 :: "('e, 'd, 'f) com list \<times> (('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list \<times> ('e, 'f) xstate"   and a2 :: "('e, 'd, 'f) com list \<times> (('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list \<times> ('e, 'f) xstate" assumes "\<Gamma>\<turnstile> a1 \<rightarrow> a2" obtains cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and s :: "'e" where "a1 = (Skip # cs__, css__, Normal s__)" and "a2 = (cs__, css__, Normal s__)"   | s :: "'e" and g :: "'e set" and f :: "'f" and c :: "('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" where "a1 = (Guard f__ g__ c__ # csa__, cssa__, Normal sa__)" and "a2 = (c__ # csa__, cssa__, Normal sa__)" and "sa__ \<in> g__"   | s :: "'e" and g :: "'e set" and f :: "'f" and c :: "('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" where "a1 = (Guard fa__ g ca__ # csb__, cssb__, Normal sb__)" and "a2 = (csb__, cssb__, Fault fa__)" and "sb__ \<notin> g"   | c :: "('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and f :: "'f" where "a1 = (cb__ # csc__, cssc__, Fault fb__)" and "a2 = (csc__, cssc__, Fault fb__)"   | nrms :: "('e, 'd, 'f) com list" and abrs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and f :: "'f" where "a1 = ([], (nrms__, abrs__) # cssd__, Fault fc__)" and "a2 = (nrms__, cssd__, Fault fc__)"   | c :: "('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and s :: "'e" where "a1 = (cc__ # csd__, csse__, Abrupt sc__)" and "a2 = (csd__, csse__, Abrupt sc__)"   | nrms :: "('e, 'd, 'f) com list" and abrs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and s :: "'e" where "a1 = ([], (nrmsa__, abrsa__) # cssf__, Normal sd__)" and "a2 = (nrmsa__, cssf__, Normal sd__)"   | nrms :: "('e, 'd, 'f) com list" and abrs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and s :: "'e" where "a1 = ([], (nrmsb__, abrsb__) # cssg__, Abrupt se__)" and "a2 = (abrsb__, cssg__, Normal se__)"   | f :: "'e \<Rightarrow> 'e" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and s :: "'e" where "a1 = (Basic f # cse__, cssh__, Normal sf__)" and "a2 = (cse__, cssh__, Normal (f sf__))"   | s :: "'e" and t :: "'e" and r :: "('e \<times> 'e) set" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" where "a1 = (Spec r__ # csf__, cssi__, Normal sg__)" and "a2 = (csf__, cssi__, Normal t)" and "(sg__, t) \<in> r__"   | s :: "'e" and r :: "('e \<times> 'e) set" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" where "a1 = (Spec r # csg__, cssj__, Normal sh__)" and "a2 = (csg__, cssj__, Stuck)" and "\<forall>t. (sh__, t) \<notin> r"   | c\<^sub>1 :: "('e, 'd, 'f) com" and c\<^sub>2 :: "('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and s :: "'e" where "a1 = (Seq c\<^sub>1__ c\<^sub>2__ # csh__, cssk__, Normal si__)" and "a2 = (c\<^sub>1__ # c\<^sub>2__ # csh__, cssk__, Normal si__)"   | s :: "'e" and b :: "'e set" and c\<^sub>1 :: "('e, 'd, 'f) com" and c\<^sub>2 :: "('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" where "a1 = (Cond b__ c\<^sub>1'__ c\<^sub>2'__ # csi__, cssl__, Normal sj__)" and "a2 = (c\<^sub>1'__ # csi__, cssl__, Normal sj__)" and "sj__ \<in> b__"   | s :: "'e" and b :: "'e set" and c\<^sub>1 :: "('e, 'd, 'f) com" and c\<^sub>2 :: "('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" where "a1 = (Cond ba__ c\<^sub>1''__ c\<^sub>2''__ # csj__, cssm__, Normal sk__)" and "a2 = (c\<^sub>2''__ # csj__, cssm__, Normal sk__)" and "sk__ \<notin> ba__"   | s :: "'e" and b :: "'e set" and c :: "('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" where "a1 = (While bb__ cd__ # csk__, cssn__, Normal sl__)" and "a2 = (cd__ # While bb__ cd__ # csk__, cssn__, Normal sl__)" and "sl__ \<in> bb__"   | s :: "'e" and b :: "'e set" and c :: "('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" where "a1 = (While b ce__ # csl__, csso__, Normal sm__)" and "a2 = (csl__, csso__, Normal sm__)" and "sm__ \<notin> b"   | p :: "'d" and bdy :: "('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and s :: "'e" where "a1 = (Call p__ # csm__, cssp__, Normal sn__)" and "a2 = ([bdy], (csm__, Throw # csm__) # cssp__, Normal sn__)" and "\<Gamma> p__ = Some bdy"   | p :: "'d" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and s :: "'e" where "a1 = (Call p # csn__, cssq__, Normal so__)" and "a2 = (csn__, cssq__, Stuck)" and "\<Gamma> p = None"   | c :: "('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" where "a1 = (cf__ # cso__, cssr__, Stuck)" and "a2 = (cso__, cssr__, Stuck)"   | nrms :: "('e, 'd, 'f) com list" and abrs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" where "a1 = ([], (nrms, abrs) # csss__, Stuck)" and "a2 = (nrms, csss__, Stuck)"   | c :: "'e \<Rightarrow> ('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and s :: "'e" where "a1 = (DynCom c # csp__, csst__, Normal sp__)" and "a2 = (c sp__ # csp__, csst__, Normal sp__)"   | cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and s :: "'e" where "a1 = (Throw # csq__, cssu__, Normal sq__)" and "a2 = (csq__, cssu__, Abrupt sq__)"   | c\<^sub>1 :: "('e, 'd, 'f) com" and c\<^sub>2 :: "('e, 'd, 'f) com" and cs :: "('e, 'd, 'f) com list" and css :: "(('e, 'd, 'f) com list \<times> ('e, 'd, 'f) com list) list" and s :: "'e" where "a1 = (Catch c\<^sub>1 c\<^sub>2 # cs, css, Normal s)" and "a2 = ([c\<^sub>1], (cs, c\<^sub>2 # cs) # css, Normal s)"