cases: fixes a1 :: "trm"   and a2 :: "trm" assumes "a1 \<longrightarrow>\<^sub>l a2" obtains x :: "name" and M :: "trm" and a :: "coname" and b :: "coname" where "a1 = Cut <a__>.Ma__ xa__.Ax xa__ b__" and "a2 = Ma__[a__\<turnstile>c>b__]" and "xa__ \<sharp> Ma__" and "a__ \<sharp> b__" and "fic Ma__ a__"   | a :: "coname" and M :: "trm" and x :: "name" and y :: "name" where "a1 = Cut <aa__>.Ax y__ aa__ xb__.Mb__" and "a2 = Mb__[xb__\<turnstile>n>y__]" and "aa__ \<sharp> Mb__" and "xb__ \<sharp> y__" and "fin Mb__ xb__"   | y :: "name" and M :: "trm" and N :: "trm" and x :: "name" and a :: "coname" and b :: "coname" where "a1 = Cut <ab__>.NotR xc__.Mc__ ab__ ya__.NotL <ba__>.Na__ ya__" and "a2 = Cut <ba__>.Na__ xc__.Mc__" and "ya__ \<sharp> (Mc__, Na__)" and "xc__ \<sharp> (Na__, ya__)" and "ab__ \<sharp> (Mc__, Na__, ba__)" and "ba__ \<sharp> Mc__" and "ya__ \<noteq> xc__" and "ba__ \<noteq> ab__"   | b :: "coname" and a1a :: "coname" and M1 :: "trm" and a2a :: "coname" and M2 :: "trm" and N :: "trm" and y :: "name" and x :: "name" where "a1 = Cut <bb__>.AndR <a1a__>.M1__ <a2a__>.M2__ bb__ yb__.AndL1 xd__.Nb__ yb__" and "a2 = Cut <a1a__>.M1__ xd__.Nb__" and "bb__ \<sharp> ([a1a__].M1__, [a2a__].M2__, Nb__, a1a__, a2a__)" and "yb__ \<sharp> ([xd__].Nb__, M1__, M2__, xd__)" and "xd__ \<sharp> (M1__, M2__)" and "a1a__ \<sharp> (M2__, Nb__)" and "a2a__ \<sharp> (M1__, Nb__)" and "a1a__ \<noteq> a2a__"   | b :: "coname" and a1a :: "coname" and M1 :: "trm" and a2a :: "coname" and M2 :: "trm" and N :: "trm" and y :: "name" and x :: "name" where "a1 = Cut <bc__>.AndR <a1a>.M1 <a2a>.M2 bc__ yc__.AndL2 xe__.Nc__ yc__" and "a2 = Cut <a2a>.M2 xe__.Nc__" and "bc__ \<sharp> ([a1a].M1, [a2a].M2, Nc__, a1a, a2a)" and "yc__ \<sharp> ([xe__].Nc__, M1, M2, xe__)" and "xe__ \<sharp> (M1, M2)" and "a1a \<sharp> (M2, Nc__)" and "a2a \<sharp> (M1, Nc__)" and "a1a \<noteq> a2a"   | b :: "coname" and a :: "coname" and M :: "trm" and N1 :: "trm" and N2 :: "trm" and y :: "name" and x1 :: "name" and x2 :: "name" where "a1 = Cut <bd__>.OrR1 <ac__>.Md__ bd__ yd__.OrL x1__.N1__ x2__.N2__ yd__" and "a2 = Cut <ac__>.Md__ x1__.N1__" and "bd__ \<sharp> ([ac__].Md__, N1__, N2__, ac__)" and "yd__ \<sharp> ([x1__].N1__, [x2__].N2__, Md__, x1__, x2__)" and "x1__ \<sharp> (Md__, N2__)" and "x2__ \<sharp> (Md__, N1__)" and "ac__ \<sharp> (N1__, N2__)" and "x1__ \<noteq> x2__"   | b :: "coname" and a :: "coname" and M :: "trm" and N1 :: "trm" and N2 :: "trm" and y :: "name" and x1 :: "name" and x2 :: "name" where "a1 = Cut <be__>.OrR2 <ad__>.Me__ be__ ye__.OrL x1.N1 x2.N2 ye__" and "a2 = Cut <ad__>.Me__ x2.N2" and "be__ \<sharp> ([ad__].Me__, N1, N2, ad__)" and "ye__ \<sharp> ([x1].N1, [x2].N2, Me__, x1, x2)" and "x1 \<sharp> (Me__, N2)" and "x2 \<sharp> (Me__, N1)" and "ad__ \<sharp> (N1, N2)" and "x1 \<noteq> x2"   | z :: "name" and N :: "trm" and y :: "name" and P :: "trm" and x :: "name" and M :: "trm" and b :: "coname" and a :: "coname" and c :: "coname" where "a1 = Cut <b>.ImpR x.<a>.M b z.ImpL <c>.N y.P z" and "a2 = Cut <a>.Cut <c>.N x.M y.P" and "z \<sharp> (N, [y].P, [x].M, y, x)" and "b \<sharp> ([a].M, [c].N, P, c, a)" and "x \<sharp> (N, [y].P, y)" and "c \<sharp> (P, [a].M, b, a)" and "a \<sharp> ([c].N, P)" and "y \<sharp> (N, [x].M)"