cases: fixes x :: "('u \<Rightarrow> 'v fundef option) \<times> ('w, 'x, 'u, 'e, 'f, 'g, 'y, 'z) instr \<times> Unboxed.type option list" obtains uu_ :: "'u \<Rightarrow> 'v fundef option" and uv_ :: "'w" and \<Sigma> :: "Unboxed.type option list" where "x = (uu_, IPush uv_, \<Sigma>'__)"   | uw_ :: "'u \<Rightarrow> 'v fundef option" and ux_ :: "'y" and \<Sigma> :: "Unboxed.type option list" where "x = (uw_, IPushUbx1 ux_, \<Sigma>''__)"   | uy_ :: "'u \<Rightarrow> 'v fundef option" and uz_ :: "'z" and \<Sigma> :: "Unboxed.type option list" where "x = (uy_, IPushUbx2 uz_, \<Sigma>'''__)"   | va_ :: "'u \<Rightarrow> 'v fundef option" and vb_ :: "Unboxed.type option" and \<Sigma> :: "Unboxed.type option list" where "x = (va_, IPop, vb_ # \<Sigma>''''__)"   | vc_ :: "'u \<Rightarrow> 'v fundef option" and vd_ :: "'x" and \<Sigma> :: "Unboxed.type option list" where "x = (vc_, ILoad vd_, None # \<Sigma>'''''__)"   | ve_ :: "'u \<Rightarrow> 'v fundef option" and \<tau> :: "Unboxed.type" and vf_ :: "'x" and \<Sigma> :: "Unboxed.type option list" where "x = (ve_, ILoadUbx \<tau> vf_, None # \<Sigma>''''''__)"   | vg_ :: "'u \<Rightarrow> 'v fundef option" and vh_ :: "'x" and \<Sigma> :: "Unboxed.type option list" where "x = (vg_, IStore vh_, None # None # \<Sigma>'''''''__)"   | vi_ :: "'u \<Rightarrow> 'v fundef option" and \<tau>\<^sub>1 :: "Unboxed.type" and vj_ :: "'x" and \<tau>\<^sub>2 :: "Unboxed.type" and \<Sigma> :: "Unboxed.type option list" where "x = (vi_, IStoreUbx \<tau>\<^sub>1 vj_, None # Some \<tau>\<^sub>2 # \<Sigma>''''''''__)"   | vk_ :: "'u \<Rightarrow> 'v fundef option" and op :: "'e" and \<Sigma> :: "Unboxed.type option list" where "x = (vk_, IOp op, \<Sigma>'''''''''__)"   | vl_ :: "'u \<Rightarrow> 'v fundef option" and opinl :: "'f" and \<Sigma> :: "Unboxed.type option list" where "x = (vl_, IOpInl opinl, \<Sigma>''''''''''__)"   | vm_ :: "'u \<Rightarrow> 'v fundef option" and opubx :: "'g" and \<Sigma> :: "Unboxed.type option list" where "x = (vm_, IOpUbx opubx, \<Sigma>'''''''''''__)"   | F :: "'u \<Rightarrow> 'v fundef option" and f :: "'u" and \<Sigma> :: "Unboxed.type option list" where "x = (F, ICall f, \<Sigma>)"   | vn_ :: "'u \<Rightarrow> 'v fundef option" where "x = (vn___, IPop, [])"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "'x" where "x = (vna___, ILoad v__, [])"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "'x" and vc :: "Unboxed.type" and vb :: "Unboxed.type option list" where "x = (vnb___, ILoad vo__, Some vca__ # vba__)"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "Unboxed.type" and va :: "'x" where "x = (vnc___, ILoadUbx vp__ vaa__, [])"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "Unboxed.type" and va :: "'x" and vd :: "Unboxed.type" and vc :: "Unboxed.type option list" where "x = (vnd___, ILoadUbx vq__ vab__, Some vda__ # vcb__)"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "'x" where "x = (vne___, IStore vr__, [])"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "'x" and vc :: "Unboxed.type" and vb :: "Unboxed.type option list" where "x = (vnf___, IStore vs__, Some vcc__ # vbb__)"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "'x" and va :: "Unboxed.type option" where "x = (vng___, IStore vt__, [vac__])"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "'x" and va :: "Unboxed.type option" and ve :: "Unboxed.type" and vd :: "Unboxed.type option list" where "x = (vnh___, IStore vu__, vad__ # Some vea__ # vdb__)"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "Unboxed.type" and va :: "'x" where "x = (vni___, IStoreUbx vv__ vae__, [])"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "Unboxed.type" and va :: "'x" and vd :: "Unboxed.type" and vc :: "Unboxed.type option list" where "x = (vnj___, IStoreUbx vw__ vaf__, Some vd # vc)"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "Unboxed.type" and va :: "'x" and vb :: "Unboxed.type option" where "x = (vnk___, IStoreUbx vx__ vag__, [vbc__])"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "Unboxed.type" and va :: "'x" and vb :: "Unboxed.type option" and ve :: "Unboxed.type option list" where "x = (vnl___, IStoreUbx vy__ va, vb # None # ve)"   | vn_ :: "'u \<Rightarrow> 'v fundef option" and v :: "nat" and vp_ :: "Unboxed.type option list" where "x = (vn_, ICJump v, vp_)"