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