strong_cases: fixes a1 :: "pi"   and a2 :: "residual"   and x :: "name"   and b :: "name"   and xa :: "name"   and xb :: "name"   and xc :: "name"   and xd :: "name"   and xe :: "name"   and y :: "name"   and ya :: "name" assumes "a1 \<longmapsto> a2" obtains P :: "pi" where "a1 = \<tau>.Pa__" and "a2 = \<tau> \<prec> Pa__"   | a :: "name" and u :: "name" and P :: "pi" where "\<lbrakk>x \<sharp> a1; x \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = a__<x>.Pb__ \<and> a2 = a__<u> \<prec> Pb__[x::=u] \<and> x \<noteq> a__ \<and> x \<noteq> u"   | a :: "name" and b :: "name" and P :: "pi" where "a1 = aa__{ba__}.Pc__" and "a2 = aa__[ba__] \<prec> Pc__"   | P :: "pi" and V :: "residual" and b :: "name" where "a1 = [bb__\<frown>bb__]Pd__" and "a2 = V__" and "Pd__ \<longmapsto> V__"   | P :: "pi" and V :: "residual" and a :: "name" and b :: "name" where "a1 = [ab__\<noteq>bc__]Pe__" and "a2 = Va__" and "Pe__ \<longmapsto> Va__" and "ab__ \<noteq> bc__"   | P :: "pi" and a :: "name" and P' :: "pi" where "\<lbrakk>b__ \<sharp> a1; b__ \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = <\<nu>b__>Pf__ \<and> a2 = ac__<\<nu>b__> \<prec> P'__ \<and> Pf__ \<longmapsto> ac__[b__] \<prec> P'__ \<and> ac__ \<noteq> b__"   | P :: "pi" and V :: "residual" and Q :: "pi" where "a1 = Pg__ \<oplus> Q__" and "a2 = Vb__" and "Pg__ \<longmapsto> Vb__"   | Q :: "pi" and V :: "residual" and P :: "pi" where "a1 = Ph__ \<oplus> Qa__" and "a2 = Vc__" and "Qa__ \<longmapsto> Vc__"   | P :: "pi" and a :: "name" and P' :: "pi" and Q :: "pi" where "\<lbrakk>xa \<sharp> a1; xa \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = Pi__ \<parallel> Qb__ \<and> a2 = ad__<\<nu>xa> \<prec> (P'a__ \<parallel> Qb__) \<and> Pi__ \<longmapsto> ad__<\<nu>xa> \<prec> P'a__ \<and> xa \<sharp> Pi__ \<and> xa \<sharp> Qb__ \<and> xa \<noteq> ad__"   | P :: "pi" and \<alpha> :: "freeRes" and P' :: "pi" and Q :: "pi" where "a1 = Pj__ \<parallel> Qc__" and "a2 = \<alpha>__ \<prec> P'b__ \<parallel> Qc__" and "Pj__ \<longmapsto> \<alpha>__ \<prec> P'b__"   | Q :: "pi" and a :: "name" and Q' :: "pi" and P :: "pi" where "\<lbrakk>xb \<sharp> a1; xb \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = Pk__ \<parallel> Qd__ \<and> a2 = ae__<\<nu>xb> \<prec> (Pk__ \<parallel> Q'__) \<and> Qd__ \<longmapsto> ae__<\<nu>xb> \<prec> Q'__ \<and> xb \<sharp> Pk__ \<and> xb \<sharp> Qd__ \<and> xb \<noteq> ae__"   | Q :: "pi" and \<alpha> :: "freeRes" and Q' :: "pi" and P :: "pi" where "a1 = Pl__ \<parallel> Qe__" and "a2 = \<alpha>'__ \<prec> Pl__ \<parallel> Q'a__" and "Qe__ \<longmapsto> \<alpha>'__ \<prec> Q'a__"   | P :: "pi" and a :: "name" and b :: "name" and P' :: "pi" and Q :: "pi" and Q' :: "pi" where "a1 = Pm__ \<parallel> Qf__" and "a2 = \<tau> \<prec> P'c__ \<parallel> Q'b__" and "Pm__ \<longmapsto> af__<bd__> \<prec> P'c__" and "Qf__ \<longmapsto> af__[bd__] \<prec> Q'b__"   | P :: "pi" and a :: "name" and b :: "name" and P' :: "pi" and Q :: "pi" and Q' :: "pi" where "a1 = Pn__ \<parallel> Qg__" and "a2 = \<tau> \<prec> P'd__ \<parallel> Q'c__" and "Pn__ \<longmapsto> ag__[b] \<prec> P'd__" and "Qg__ \<longmapsto> ag__<b> \<prec> Q'c__"   | P :: "pi" and a :: "name" and P' :: "pi" and Q :: "pi" and Q' :: "pi" where "\<lbrakk>xc \<sharp> a1; xc \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = Po__ \<parallel> Qh__ \<and> a2 = \<tau> \<prec> <\<nu>xc>(P'e__ \<parallel> Q'd__) \<and> Po__ \<longmapsto> ah__<xc> \<prec> P'e__ \<and> Qh__ \<longmapsto> ah__<\<nu>xc> \<prec> Q'd__ \<and> xc \<sharp> Po__ \<and> xc \<sharp> Qh__ \<and> xc \<noteq> ah__"   | P :: "pi" and a :: "name" and P' :: "pi" and Q :: "pi" and Q' :: "pi" where "\<lbrakk>xd \<sharp> a1; xd \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = Pp__ \<parallel> Q \<and> a2 = \<tau> \<prec> <\<nu>xd>(P'f__ \<parallel> Q') \<and> Pp__ \<longmapsto> ai__<\<nu>xd> \<prec> P'f__ \<and> Q \<longmapsto> ai__<xd> \<prec> Q' \<and> xd \<sharp> Pp__ \<and> xd \<sharp> Q \<and> xd \<noteq> ai__"   | P :: "pi" and a :: "name" and P' :: "pi" where "\<lbrakk>xe \<noteq> y; xe \<sharp> a1; xe \<sharp> a2; y \<sharp> a1; y \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = <\<nu>y>Pq__ \<and> a2 = a<\<nu>xe> \<prec> (<\<nu>y>P'g__) \<and> Pq__ \<longmapsto> a<\<nu>xe> \<prec> P'g__ \<and> y \<noteq> a \<and> y \<noteq> xe \<and> xe \<sharp> Pq__ \<and> xe \<noteq> a"   | P :: "pi" and \<alpha> :: "freeRes" and P' :: "pi" where "\<lbrakk>ya \<sharp> a1; ya \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = <\<nu>ya>Pr__ \<and> a2 = \<alpha> \<prec> <\<nu>ya>P' \<and> Pr__ \<longmapsto> \<alpha> \<prec> P' \<and> ya \<sharp> \<alpha>"   | P :: "pi" and V :: "residual" where "a1 = !P" and "a2 = V" and "P \<parallel> !P \<longmapsto> V"