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"   and xf :: "name"   and xg :: "name"   and yb :: "name"   and yc :: "name" assumes "a1 \<longmapsto> a2" obtains P :: "pi" where "a1 = \<tau>.Pa__" and "a2 = \<tau> \<prec> Pa__"   | a :: "name" and P :: "pi" where "\<lbrakk>x \<sharp> a1; x \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = a__<x>.Pb__ \<and> a2 = a__<x> \<prec> Pb__ \<and> x \<noteq> a__"   | a :: "name" and b :: "name" and P :: "pi" where "a1 = aa__{ba__}.Pc__" and "a2 = aa__[ba__] \<prec> Pc__"   | P :: "pi" and Rs :: "residual" and b :: "name" where "a1 = [bb__\<frown>bb__]Pd__" and "a2 = Rsa__" and "Pd__ \<longmapsto> Rsa__"   | P :: "pi" and Rs :: "residual" and a :: "name" and b :: "name" where "a1 = [ab__\<noteq>bc__]Pe__" and "a2 = Rsb__" and "Pe__ \<longmapsto> Rsb__" 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 Rs :: "residual" and Q :: "pi" where "a1 = Pg__ \<oplus> Q__" and "a2 = Rsc__" and "Pg__ \<longmapsto> Rsc__"   | Q :: "pi" and Rs :: "residual" and P :: "pi" where "a1 = Ph__ \<oplus> Qa__" and "a2 = Rsd__" and "Qa__ \<longmapsto> Rsd__"   | P :: "pi" and a :: "subject" and P' :: "pi" and Q :: "pi" where "\<lbrakk>xa \<sharp> a1; xa \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = Pi__ \<parallel> Qb__ \<and> a2 = ad__\<guillemotleft>xa\<guillemotright> \<prec> P'a__ \<parallel> Qb__ \<and> Pi__ \<longmapsto> ad__\<guillemotleft>xa\<guillemotright> \<prec> P'a__ \<and> xa \<sharp> Pi__ \<and> xa \<sharp> Qb__ \<and> xa \<sharp> 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 :: "subject" and Q' :: "pi" and P :: "pi" where "\<lbrakk>xb \<sharp> a1; xb \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = Pk__ \<parallel> Qd__ \<and> a2 = ae__\<guillemotleft>xb\<guillemotright> \<prec> Pk__ \<parallel> Q'__ \<and> Qd__ \<longmapsto> ae__\<guillemotleft>xb\<guillemotright> \<prec> Q'__ \<and> xb \<sharp> Pk__ \<and> xb \<sharp> Qd__ \<and> xb \<sharp> 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 P' :: "pi" and Q :: "pi" and b :: "name" and Q' :: "pi" where "\<lbrakk>xc \<sharp> a1; xc \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = Pm__ \<parallel> Qf__ \<and> a2 = \<tau> \<prec> P'c__[xc::=bd__] \<parallel> Q'b__ \<and> Pm__ \<longmapsto> af__<xc> \<prec> P'c__ \<and> Qf__ \<longmapsto> af__[bd__] \<prec> Q'b__ \<and> xc \<sharp> Pm__ \<and> xc \<sharp> Qf__ \<and> xc \<noteq> af__ \<and> xc \<noteq> bd__ \<and> xc \<sharp> Q'b__"   | P :: "pi" and a :: "name" and b :: "name" and P' :: "pi" and Q :: "pi" and Q' :: "pi" where "\<lbrakk>xd \<sharp> a1; xd \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = Pn__ \<parallel> Qg__ \<and> a2 = \<tau> \<prec> P'd__ \<parallel> Q'c__[xd::=b] \<and> Pn__ \<longmapsto> ag__[b] \<prec> P'd__ \<and> Qg__ \<longmapsto> ag__<xd> \<prec> Q'c__ \<and> xd \<sharp> Pn__ \<and> xd \<sharp> Qg__ \<and> xd \<noteq> ag__ \<and> xd \<noteq> b \<and> xd \<sharp> P'd__"   | P :: "pi" and a :: "name" and P' :: "pi" and Q :: "pi" and Q' :: "pi" where "\<lbrakk>xe \<noteq> y; xe \<sharp> a1; xe \<sharp> a2; y \<sharp> a1; y \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = Po__ \<parallel> Qh__ \<and> a2 = \<tau> \<prec> <\<nu>y>(P'e__[xe::=y] \<parallel> Q'd__) \<and> Po__ \<longmapsto> ah__<xe> \<prec> P'e__ \<and> Qh__ \<longmapsto> ah__<\<nu>y> \<prec> Q'd__ \<and> xe \<sharp> Po__ \<and> xe \<sharp> Qh__ \<and> y \<sharp> Po__ \<and> y \<sharp> Qh__ \<and> xe \<noteq> ah__ \<and> xe \<sharp> Q'd__ \<and> y \<noteq> ah__ \<and> y \<sharp> P'e__ \<and> xe \<noteq> y"   | P :: "pi" and a :: "name" and P' :: "pi" and Q :: "pi" and Q' :: "pi" where "\<lbrakk>ya \<noteq> xf; ya \<sharp> a1; ya \<sharp> a2; xf \<sharp> a1; xf \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = Pp__ \<parallel> Q \<and> a2 = \<tau> \<prec> <\<nu>ya>(P'f__ \<parallel> Q'[xf::=ya]) \<and> Pp__ \<longmapsto> ai__<\<nu>ya> \<prec> P'f__ \<and> Q \<longmapsto> ai__<xf> \<prec> Q' \<and> xf \<sharp> Pp__ \<and> xf \<sharp> Q \<and> ya \<sharp> Pp__ \<and> ya \<sharp> Q \<and> xf \<noteq> ai__ \<and> xf \<sharp> P'f__ \<and> ya \<noteq> ai__ \<and> ya \<sharp> Q' \<and> xf \<noteq> ya"   | P :: "pi" and a :: "subject" and P' :: "pi" where "\<lbrakk>xg \<noteq> yb; xg \<sharp> a1; xg \<sharp> a2; yb \<sharp> a1; yb \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = <\<nu>yb>Pq__ \<and> a2 = a\<guillemotleft>xg\<guillemotright> \<prec> <\<nu>yb>P'g__ \<and> Pq__ \<longmapsto> a\<guillemotleft>xg\<guillemotright> \<prec> P'g__ \<and> yb \<sharp> a \<and> yb \<noteq> xg \<and> xg \<sharp> Pq__ \<and> xg \<sharp> a"   | P :: "pi" and \<alpha> :: "freeRes" and P' :: "pi" where "\<lbrakk>yc \<sharp> a1; yc \<sharp> a2\<rbrakk> \<Longrightarrow> a1 = <\<nu>yc>Pr__ \<and> a2 = \<alpha> \<prec> <\<nu>yc>P' \<and> Pr__ \<longmapsto> \<alpha> \<prec> P' \<and> yc \<sharp> \<alpha>"   | P :: "pi" and Rs :: "residual" where "a1 = !P" and "a2 = Rs" and "P \<parallel> !P \<longmapsto> Rs"