cases: fixes a1 :: "trm"   and a2 :: "trm" assumes "a1 \<longrightarrow>\<^sub>a a2" obtains M :: "trm" and M' :: "trm" where "a1 = Ma__" and "a2 = M'__" and "Ma__ \<longrightarrow>\<^sub>l M'__"   | M :: "trm" and M' :: "trm" where "a1 = Mb__" and "a2 = M'a__" and "Mb__ \<longrightarrow>\<^sub>c M'a__"   | a :: "coname" and N :: "trm" and x :: "name" and M :: "trm" and M' :: "trm" where "a1 = Cut <a__>.Mc__ xa__.Na__" and "a2 = Cut <a__>.M'b__ xa__.Na__" and "a__ \<sharp> Na__" and "xa__ \<sharp> Mc__" and "Mc__ \<longrightarrow>\<^sub>a M'b__"   | a :: "coname" and N :: "trm" and x :: "name" and M :: "trm" and N' :: "trm" where "a1 = Cut <aa__>.Md__ xb__.Nb__" and "a2 = Cut <aa__>.Md__ xb__.N'__" and "aa__ \<sharp> Nb__" and "xb__ \<sharp> Md__" and "Nb__ \<longrightarrow>\<^sub>a N'__"   | M :: "trm" and M' :: "trm" and a :: "coname" and x :: "name" where "a1 = NotL <ab__>.Me__ xc__" and "a2 = NotL <ab__>.M'c__ xc__" and "Me__ \<longrightarrow>\<^sub>a M'c__"   | M :: "trm" and M' :: "trm" and x :: "name" and a :: "coname" where "a1 = NotR xd__.Mf__ ac__" and "a2 = NotR xd__.M'd__ ac__" and "Mf__ \<longrightarrow>\<^sub>a M'd__"   | a :: "coname" and N :: "trm" and c :: "coname" and b :: "coname" and M :: "trm" and M' :: "trm" where "a1 = AndR <ad__>.Mg__ <b__>.Nc__ ca__" and "a2 = AndR <ad__>.M'e__ <b__>.Nc__ ca__" and "ad__ \<sharp> (Nc__, ca__)" and "b__ \<sharp> (Mg__, ca__)" and "b__ \<noteq> ad__" and "Mg__ \<longrightarrow>\<^sub>a M'e__"   | a :: "coname" and N :: "trm" and c :: "coname" and b :: "coname" and M :: "trm" and N' :: "trm" where "a1 = AndR <ae__>.Mh__ <ba__>.Nd__ c" and "a2 = AndR <ae__>.Mh__ <ba__>.N'a__ c" and "ae__ \<sharp> (Nd__, c)" and "ba__ \<sharp> (Mh__, c)" and "ba__ \<noteq> ae__" and "Nd__ \<longrightarrow>\<^sub>a N'a__"   | x :: "name" and y :: "name" and M :: "trm" and M' :: "trm" where "a1 = AndL1 xe__.Mi__ y__" and "a2 = AndL1 xe__.M'f__ y__" and "xe__ \<sharp> y__" and "Mi__ \<longrightarrow>\<^sub>a M'f__"   | x :: "name" and y :: "name" and M :: "trm" and M' :: "trm" where "a1 = AndL2 xf__.Mj__ ya__" and "a2 = AndL2 xf__.M'g__ ya__" and "xf__ \<sharp> ya__" and "Mj__ \<longrightarrow>\<^sub>a M'g__"   | x :: "name" and N :: "trm" and z :: "name" and y :: "name" and M :: "trm" and M' :: "trm" where "a1 = OrL xg__.Mk__ yb__.Ne__ z__" and "a2 = OrL xg__.M'h__ yb__.Ne__ z__" and "xg__ \<sharp> (Ne__, z__)" and "yb__ \<sharp> (Mk__, z__)" and "yb__ \<noteq> xg__" and "Mk__ \<longrightarrow>\<^sub>a M'h__"   | x :: "name" and N :: "trm" and z :: "name" and y :: "name" and M :: "trm" and N' :: "trm" where "a1 = OrL xh__.Ml__ yc__.Nf__ z" and "a2 = OrL xh__.Ml__ yc__.N'b__ z" and "xh__ \<sharp> (Nf__, z)" and "yc__ \<sharp> (Ml__, z)" and "yc__ \<noteq> xh__" and "Nf__ \<longrightarrow>\<^sub>a N'b__"   | a :: "coname" and b :: "coname" and M :: "trm" and M' :: "trm" where "a1 = OrR1 <af__>.Mm__ bb__" and "a2 = OrR1 <af__>.M'i__ bb__" and "af__ \<sharp> bb__" and "Mm__ \<longrightarrow>\<^sub>a M'i__"   | a :: "coname" and b :: "coname" and M :: "trm" and M' :: "trm" where "a1 = OrR2 <ag__>.Mn__ bc__" and "a2 = OrR2 <ag__>.M'j__ bc__" and "ag__ \<sharp> bc__" and "Mn__ \<longrightarrow>\<^sub>a M'j__"   | a :: "coname" and N :: "trm" and x :: "name" and M :: "trm" and y :: "name" and M' :: "trm" where "a1 = ImpL <ah__>.Mo__ xi__.Ng__ yd__" and "a2 = ImpL <ah__>.M'k__ xi__.Ng__ yd__" and "ah__ \<sharp> Ng__" and "xi__ \<sharp> (Mo__, yd__)" and "Mo__ \<longrightarrow>\<^sub>a M'k__"   | a :: "coname" and N :: "trm" and x :: "name" and M :: "trm" and y :: "name" and N' :: "trm" where "a1 = ImpL <ai__>.Mp__ xj__.N y" and "a2 = ImpL <ai__>.Mp__ xj__.N' y" and "ai__ \<sharp> N" and "xj__ \<sharp> (Mp__, y)" and "N \<longrightarrow>\<^sub>a N'"   | a :: "coname" and b :: "coname" and M :: "trm" and M' :: "trm" and x :: "name" where "a1 = ImpR x.<a>.M b" and "a2 = ImpR x.<a>.M' b" and "a \<sharp> b" and "M \<longrightarrow>\<^sub>a M'"