[STATEMENT]
lemma weakCongSimParPres:
  fixes \<Psi>    :: 'b
  and   P    :: "('a, 'b, 'c) psi"
  and   Rel  :: "('b \<times> ('a, 'b, 'c) psi \<times> ('a, 'b, 'c) psi) set"
  and   Q    :: "('a, 'b, 'c) psi"
  and   R    :: "('a, 'b, 'c) psi"
  and   Rel' :: "('b \<times> ('a, 'b, 'c) psi \<times> ('a, 'b, 'c) psi) set"

  assumes PSimQ: "\<And>\<Psi>'. \<Psi>' \<rhd> P \<leadsto>\<guillemotleft>Rel\<guillemotright> Q"
  and     PSimQ': "\<And>\<Psi>'. \<Psi>' \<rhd> P \<leadsto><Rel> Q"
  and     StatImp: "\<And>\<Psi>'. \<Psi>' \<rhd> Q \<lessapprox><Rel> P"

  and            "eqvt Rel"
  and            "eqvt Rel'"

  and     Sym:    "\<And>\<Psi>' S T. \<lbrakk>(\<Psi>', S, T) \<in> Rel\<rbrakk> \<Longrightarrow> (\<Psi>', T, S) \<in> Rel"
  and     Ext:    "\<And>\<Psi>' S T \<Psi>''. \<lbrakk>(\<Psi>', S, T) \<in> Rel\<rbrakk> \<Longrightarrow> (\<Psi>' \<otimes> \<Psi>'', S, T) \<in> Rel"

  and     C1: "\<And>\<Psi>' S T A\<^sub>U \<Psi>\<^sub>U U. \<lbrakk>(\<Psi>' \<otimes> \<Psi>\<^sub>U, S, T) \<in> Rel; extractFrame U = \<langle>A\<^sub>U, \<Psi>\<^sub>U\<rangle>; A\<^sub>U \<sharp>* \<Psi>'; A\<^sub>U \<sharp>* S; A\<^sub>U \<sharp>* T\<rbrakk> \<Longrightarrow> (\<Psi>', S \<parallel> U, T \<parallel> U) \<in> Rel'"
  and     C2: "\<And>\<Psi>' S T xvec. \<lbrakk>(\<Psi>', S, T) \<in> Rel'; xvec \<sharp>* \<Psi>'\<rbrakk> \<Longrightarrow> (\<Psi>', \<lparr>\<nu>*xvec\<rparr>S, \<lparr>\<nu>*xvec\<rparr>T) \<in> Rel'"
  and     C3: "\<And>\<Psi>' S T \<Psi>''. \<lbrakk>(\<Psi>', S, T) \<in> Rel; \<Psi>' \<simeq> \<Psi>''\<rbrakk> \<Longrightarrow> (\<Psi>'', S, T) \<in> Rel"

  shows "\<Psi> \<rhd> P \<parallel> R \<leadsto>\<guillemotleft>Rel'\<guillemotright> Q \<parallel> R"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<rhd> P \<parallel> R \<leadsto>\<guillemotleft>Rel'\<guillemotright> Q \<parallel> R
[PROOF STEP]
proof(induct rule: weakCongSimI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>Q'. \<Psi> \<rhd> Q \<parallel> R \<longmapsto> \<tau> \<prec> Q' \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q') \<in> Rel'
[PROOF STEP]
case(cTau QR)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> Q \<parallel> R \<longmapsto> \<tau> \<prec> QR

goal (1 subgoal):
 1. \<And>Q'. \<Psi> \<rhd> Q \<parallel> R \<longmapsto> \<tau> \<prec> Q' \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q') \<in> Rel'
[PROOF STEP]
from \<open>\<Psi> \<rhd> Q \<parallel> R \<longmapsto>\<tau> \<prec> QR\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<rhd> Q \<parallel> R \<longmapsto> \<tau> \<prec> QR
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> Q \<parallel> R \<longmapsto> \<tau> \<prec> QR

goal (1 subgoal):
 1. \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', QR) \<in> Rel'
[PROOF STEP]
proof(induct rule: parTauCases[where C="(P, R)"])
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> \<tau> \<prec> P'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> R) \<in> Rel'
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 4. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
case(cPar1 Q' A\<^sub>R \<Psi>\<^sub>R)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> \<tau> \<prec> Q'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
distinct A\<^sub>R
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* R
A\<^sub>R \<sharp>* (P, R)

goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> \<tau> \<prec> P'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> R) \<in> Rel'
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 4. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>R \<sharp>* (P, R)\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R \<sharp>* (P, R)
[PROOF STEP]
have "A\<^sub>R \<sharp>* P"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R \<sharp>* (P, R)

goal (1 subgoal):
 1. A\<^sub>R \<sharp>* P
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
A\<^sub>R \<sharp>* P

goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> \<tau> \<prec> P'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> R) \<in> Rel'
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 4. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have FrR: " extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>

goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> \<tau> \<prec> P'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> R) \<in> Rel'
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 4. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* P\<close> \<open>A\<^sub>R \<sharp>* Q\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<leadsto>\<guillemotleft>Rel\<guillemotright> Q"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<leadsto>\<guillemotleft>Rel\<guillemotright> Q
[PROOF STEP]
by(rule_tac PSimQ)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<leadsto>\<guillemotleft>Rel\<guillemotright> Q

goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> \<tau> \<prec> P'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> R) \<in> Rel'
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 4. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<leadsto>\<guillemotleft>Rel\<guillemotright> Q

goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> \<tau> \<prec> P'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> R) \<in> Rel'
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 4. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have QTrans: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto>\<tau> \<prec> Q'"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> \<tau> \<prec> Q'
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> \<tau> \<prec> Q'

goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> \<tau> \<prec> P'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> R) \<in> Rel'
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 4. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<leadsto>\<guillemotleft>Rel\<guillemotright> Q
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> \<tau> \<prec> Q'
[PROOF STEP]
obtain P' where PChain: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'" and P'RelQ': "(\<Psi> \<otimes> \<Psi>\<^sub>R, P', Q') \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<leadsto>\<guillemotleft>Rel\<guillemotright> Q
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> \<tau> \<prec> Q'

goal (1 subgoal):
 1. (\<And>P'. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'; (\<Psi> \<otimes> \<Psi>\<^sub>R, P', Q') \<in> Rel\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule weakCongSimE)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'
(\<Psi> \<otimes> \<Psi>\<^sub>R, P', Q') \<in> Rel

goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> \<tau> \<prec> P'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> R) \<in> Rel'
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 4. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from PChain QTrans \<open>A\<^sub>R \<sharp>* P\<close> \<open>A\<^sub>R \<sharp>* Q\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> \<tau> \<prec> Q'
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
[PROOF STEP]
have "A\<^sub>R \<sharp>* P'" and "A\<^sub>R \<sharp>* Q'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> \<tau> \<prec> Q'
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q

goal (1 subgoal):
 1. A\<^sub>R \<sharp>* P' &&& A\<^sub>R \<sharp>* Q'
[PROOF STEP]
by(force dest: freeFreshChainDerivative tauStepChainFreshChain)+
[PROOF STATE]
proof (state)
this:
A\<^sub>R \<sharp>* P'
A\<^sub>R \<sharp>* Q'

goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> \<tau> \<prec> P'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> R) \<in> Rel'
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 4. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from PChain FrR \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* P\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P
[PROOF STEP]
have "\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> (P' \<parallel> R)"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<parallel> R
[PROOF STEP]
by(rule tauStepChainPar1)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<parallel> R

goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> \<tau> \<prec> P'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> R) \<in> Rel'
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 4. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<parallel> R

goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> \<tau> \<prec> P'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> R) \<in> Rel'
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 4. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from P'RelQ' FrR \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* P'\<close> \<open>A\<^sub>R \<sharp>* Q'\<close>
[PROOF STATE]
proof (chain)
picking this:
(\<Psi> \<otimes> \<Psi>\<^sub>R, P', Q') \<in> Rel
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P'
A\<^sub>R \<sharp>* Q'
[PROOF STEP]
have "(\<Psi>, P' \<parallel> R, Q' \<parallel> R) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R, P', Q') \<in> Rel
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P'
A\<^sub>R \<sharp>* Q'

goal (1 subgoal):
 1. (\<Psi>, P' \<parallel> R, Q' \<parallel> R) \<in> Rel'
[PROOF STEP]
by(rule C1)
[PROOF STATE]
proof (state)
this:
(\<Psi>, P' \<parallel> R, Q' \<parallel> R) \<in> Rel'

goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> \<tau> \<prec> P'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> R) \<in> Rel'
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 4. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<parallel> R
(\<Psi>, P' \<parallel> R, Q' \<parallel> R) \<in> Rel'
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<parallel> R
(\<Psi>, P' \<parallel> R, Q' \<parallel> R) \<in> Rel'

goal (1 subgoal):
 1. \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q' \<parallel> R) \<in> Rel'
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q' \<parallel> R) \<in> Rel'

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
case(cPar2 R' A\<^sub>Q \<Psi>\<^sub>Q)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> \<tau> \<prec> R'
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
distinct A\<^sub>Q
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* Q
A\<^sub>Q \<sharp>* R
A\<^sub>Q \<sharp>* (P, R)

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>Q \<sharp>* (P, R)\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>Q \<sharp>* (P, R)
[PROOF STEP]
have "A\<^sub>Q \<sharp>* P" and "A\<^sub>Q \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>Q \<sharp>* (P, R)

goal (1 subgoal):
 1. A\<^sub>Q \<sharp>* P &&& A\<^sub>Q \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
A\<^sub>Q \<sharp>* P
A\<^sub>Q \<sharp>* R

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
obtain A\<^sub>P \<Psi>\<^sub>P where FrP: "extractFrame P = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>" and "A\<^sub>P \<sharp>* (\<Psi>, A\<^sub>Q, \<Psi>\<^sub>Q, R)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>extractFrame P = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; A\<^sub>P \<sharp>* (\<Psi>, A\<^sub>Q, \<Psi>\<^sub>Q, R)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule freshFrame)
[PROOF STATE]
proof (state)
this:
extractFrame P = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>
A\<^sub>P \<sharp>* (\<Psi>, A\<^sub>Q, \<Psi>\<^sub>Q, R)

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
hence "A\<^sub>P \<sharp>* \<Psi>" and "A\<^sub>P \<sharp>* A\<^sub>Q" and "A\<^sub>P \<sharp>* \<Psi>\<^sub>Q" and "A\<^sub>P \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
extractFrame P = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>
A\<^sub>P \<sharp>* (\<Psi>, A\<^sub>Q, \<Psi>\<^sub>Q, R)

goal (1 subgoal):
 1. (A\<^sub>P \<sharp>* \<Psi> &&& A\<^sub>P \<sharp>* A\<^sub>Q) &&& A\<^sub>P \<sharp>* \<Psi>\<^sub>Q &&& A\<^sub>P \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
A\<^sub>P \<sharp>* \<Psi>
A\<^sub>P \<sharp>* A\<^sub>Q
A\<^sub>P \<sharp>* \<Psi>\<^sub>Q
A\<^sub>P \<sharp>* R

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have FrQ: "extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>Q \<sharp>* P\<close> FrP \<open>A\<^sub>P \<sharp>* A\<^sub>Q\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>Q \<sharp>* P
extractFrame P = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>
A\<^sub>P \<sharp>* A\<^sub>Q
[PROOF STEP]
have "A\<^sub>Q \<sharp>* \<Psi>\<^sub>P"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>Q \<sharp>* P
extractFrame P = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>
A\<^sub>P \<sharp>* A\<^sub>Q

goal (1 subgoal):
 1. A\<^sub>Q \<sharp>* \<Psi>\<^sub>P
[PROOF STEP]
by(drule_tac extractFrameFreshChain) auto
[PROOF STATE]
proof (state)
this:
A\<^sub>Q \<sharp>* \<Psi>\<^sub>P

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
obtain A\<^sub>R \<Psi>\<^sub>R where FrR: "extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>" and "A\<^sub>R \<sharp>* (\<Psi>, P, Q, A\<^sub>Q, A\<^sub>P, \<Psi>\<^sub>Q, \<Psi>\<^sub>P, R)" and "distinct A\<^sub>R"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>A\<^sub>R \<Psi>\<^sub>R. \<lbrakk>extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>; A\<^sub>R \<sharp>* (\<Psi>, P, Q, A\<^sub>Q, A\<^sub>P, \<Psi>\<^sub>Q, \<Psi>\<^sub>P, R); distinct A\<^sub>R\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule freshFrame)
[PROOF STATE]
proof (state)
this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* (\<Psi>, P, Q, A\<^sub>Q, A\<^sub>P, \<Psi>\<^sub>Q, \<Psi>\<^sub>P, R)
distinct A\<^sub>R

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* (\<Psi>, P, Q, A\<^sub>Q, A\<^sub>P, \<Psi>\<^sub>Q, \<Psi>\<^sub>P, R)
distinct A\<^sub>R
[PROOF STEP]
have "A\<^sub>R \<sharp>* \<Psi>" and "A\<^sub>R \<sharp>* P" and "A\<^sub>R \<sharp>* Q" and "A\<^sub>R \<sharp>* A\<^sub>Q" and  "A\<^sub>R \<sharp>* A\<^sub>P" and  "A\<^sub>R \<sharp>* \<Psi>\<^sub>Q" and  "A\<^sub>R \<sharp>* \<Psi>\<^sub>P"
          and "A\<^sub>R \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* (\<Psi>, P, Q, A\<^sub>Q, A\<^sub>P, \<Psi>\<^sub>Q, \<Psi>\<^sub>P, R)
distinct A\<^sub>R

goal (1 subgoal):
 1. ((A\<^sub>R \<sharp>* \<Psi> &&& A\<^sub>R \<sharp>* P) &&& A\<^sub>R \<sharp>* Q &&& A\<^sub>R \<sharp>* A\<^sub>Q) &&& (A\<^sub>R \<sharp>* A\<^sub>P &&& A\<^sub>R \<sharp>* \<Psi>\<^sub>Q) &&& A\<^sub>R \<sharp>* \<Psi>\<^sub>P &&& A\<^sub>R \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* A\<^sub>Q
A\<^sub>R \<sharp>* A\<^sub>P
A\<^sub>R \<sharp>* \<Psi>\<^sub>Q
A\<^sub>R \<sharp>* \<Psi>\<^sub>P
A\<^sub>R \<sharp>* R

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>Q \<sharp>* R\<close>  FrR \<open>A\<^sub>R \<sharp>* A\<^sub>Q\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>Q \<sharp>* R
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* A\<^sub>Q
[PROOF STEP]
have "A\<^sub>Q \<sharp>* \<Psi>\<^sub>R"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>Q \<sharp>* R
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* A\<^sub>Q

goal (1 subgoal):
 1. A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
[PROOF STEP]
by(drule_tac extractFrameFreshChain) auto
[PROOF STATE]
proof (state)
this:
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>P \<sharp>* R\<close> \<open>A\<^sub>R \<sharp>* A\<^sub>P\<close> FrR
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>P \<sharp>* R
A\<^sub>R \<sharp>* A\<^sub>P
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
have "A\<^sub>P \<sharp>* \<Psi>\<^sub>R"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>P \<sharp>* R
A\<^sub>R \<sharp>* A\<^sub>P
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. A\<^sub>P \<sharp>* \<Psi>\<^sub>R
[PROOF STEP]
by(drule_tac extractFrameFreshChain) auto
[PROOF STATE]
proof (state)
this:
A\<^sub>P \<sharp>* \<Psi>\<^sub>R

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
A\<^sub>P \<sharp>* \<Psi>\<^sub>R

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto>\<tau> \<prec> R'\<close> FrR \<open>distinct A\<^sub>R\<close> \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* P\<close> \<open>A\<^sub>R \<sharp>* Q\<close> \<open>A\<^sub>R \<sharp>* R\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> \<tau> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
distinct A\<^sub>R
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* R
[PROOF STEP]
obtain \<Psi>' A\<^sub>R' \<Psi>\<^sub>R' where "\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'" and FrR': "extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>"
                         and "A\<^sub>R' \<sharp>* \<Psi>" and "A\<^sub>R' \<sharp>* P" and "A\<^sub>R' \<sharp>* Q"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> \<tau> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
distinct A\<^sub>R
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* R

goal (1 subgoal):
 1. (\<And>\<Psi>' \<Psi>\<^sub>R' A\<^sub>R'. \<lbrakk>\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'; extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>; A\<^sub>R' \<sharp>* \<Psi>; A\<^sub>R' \<sharp>* P; A\<^sub>R' \<sharp>* Q\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule_tac C="(\<Psi>, P, Q, R)" in expandTauFrame) (assumption | simp)+
[PROOF STATE]
proof (state)
this:
\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
A\<^sub>R' \<sharp>* \<Psi>
A\<^sub>R' \<sharp>* P
A\<^sub>R' \<sharp>* Q

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from FrR \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* P\<close> \<open>A\<^sub>R \<sharp>* Q\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
[PROOF STEP]
obtain P' P'' where PChain: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'"
                    and QimpP': "insertAssertion(extractFrame Q) (\<Psi> \<otimes> \<Psi>\<^sub>R) \<hookrightarrow>\<^sub>F insertAssertion(extractFrame P') (\<Psi> \<otimes> \<Psi>\<^sub>R)"
                    and P'Chain: "(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''"
                    and P'RelQ: "((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', P'', Q) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q

goal (1 subgoal):
 1. (\<And>P' P''. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'; insertAssertion (extractFrame Q) (\<Psi> \<otimes> \<Psi>\<^sub>R) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P') (\<Psi> \<otimes> \<Psi>\<^sub>R); (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''; ((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', P'', Q) \<in> Rel\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(metis StatImp weakStatImp_def Sym)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
insertAssertion (extractFrame Q) (\<Psi> \<otimes> \<Psi>\<^sub>R) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P') (\<Psi> \<otimes> \<Psi>\<^sub>R)
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', P'', Q) \<in> Rel

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
obtain A\<^sub>P' \<Psi>\<^sub>P' where FrP': "extractFrame P' = \<langle>A\<^sub>P', \<Psi>\<^sub>P'\<rangle>" and "A\<^sub>P' \<sharp>* \<Psi>" and "A\<^sub>P' \<sharp>* \<Psi>\<^sub>R" and "A\<^sub>P' \<sharp>* \<Psi>\<^sub>Q"
                      and "A\<^sub>P' \<sharp>* A\<^sub>Q" and "A\<^sub>P' \<sharp>* R" and "A\<^sub>P' \<sharp>* A\<^sub>R"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>A\<^sub>P' \<Psi>\<^sub>P'. \<lbrakk>extractFrame P' = \<langle>A\<^sub>P', \<Psi>\<^sub>P'\<rangle>; A\<^sub>P' \<sharp>* \<Psi>; A\<^sub>P' \<sharp>* \<Psi>\<^sub>R; A\<^sub>P' \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P' \<sharp>* A\<^sub>Q; A\<^sub>P' \<sharp>* R; A\<^sub>P' \<sharp>* A\<^sub>R\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule_tac C="(\<Psi>, \<Psi>\<^sub>R, \<Psi>\<^sub>Q, A\<^sub>Q, R, A\<^sub>R)" in freshFrame) auto
[PROOF STATE]
proof (state)
this:
extractFrame P' = \<langle>A\<^sub>P', \<Psi>\<^sub>P'\<rangle>
A\<^sub>P' \<sharp>* \<Psi>
A\<^sub>P' \<sharp>* \<Psi>\<^sub>R
A\<^sub>P' \<sharp>* \<Psi>\<^sub>Q
A\<^sub>P' \<sharp>* A\<^sub>Q
A\<^sub>P' \<sharp>* R
A\<^sub>P' \<sharp>* A\<^sub>R

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from PChain P'Chain \<open>A\<^sub>R \<sharp>* P\<close> \<open>A\<^sub>Q \<sharp>* P\<close> \<open>A\<^sub>R' \<sharp>* P\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''
A\<^sub>R \<sharp>* P
A\<^sub>Q \<sharp>* P
A\<^sub>R' \<sharp>* P
[PROOF STEP]
have "A\<^sub>Q \<sharp>* P'" and "A\<^sub>R \<sharp>* P'" and "A\<^sub>R' \<sharp>* P'" and "A\<^sub>R' \<sharp>* P''"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''
A\<^sub>R \<sharp>* P
A\<^sub>Q \<sharp>* P
A\<^sub>R' \<sharp>* P

goal (1 subgoal):
 1. (A\<^sub>Q \<sharp>* P' &&& A\<^sub>R \<sharp>* P') &&& A\<^sub>R' \<sharp>* P' &&& A\<^sub>R' \<sharp>* P''
[PROOF STEP]
by(force intro: tauChainFreshChain)+
[PROOF STATE]
proof (state)
this:
A\<^sub>Q \<sharp>* P'
A\<^sub>R \<sharp>* P'
A\<^sub>R' \<sharp>* P'
A\<^sub>R' \<sharp>* P''

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>R \<sharp>* P'\<close> \<open>A\<^sub>P' \<sharp>* A\<^sub>R\<close> \<open>A\<^sub>Q \<sharp>* P'\<close> \<open>A\<^sub>P' \<sharp>* A\<^sub>Q\<close> FrP'
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R \<sharp>* P'
A\<^sub>P' \<sharp>* A\<^sub>R
A\<^sub>Q \<sharp>* P'
A\<^sub>P' \<sharp>* A\<^sub>Q
extractFrame P' = \<langle>A\<^sub>P', \<Psi>\<^sub>P'\<rangle>
[PROOF STEP]
have "A\<^sub>Q \<sharp>* \<Psi>\<^sub>P'" and "A\<^sub>R \<sharp>* \<Psi>\<^sub>P'"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R \<sharp>* P'
A\<^sub>P' \<sharp>* A\<^sub>R
A\<^sub>Q \<sharp>* P'
A\<^sub>P' \<sharp>* A\<^sub>Q
extractFrame P' = \<langle>A\<^sub>P', \<Psi>\<^sub>P'\<rangle>

goal (1 subgoal):
 1. A\<^sub>Q \<sharp>* \<Psi>\<^sub>P' &&& A\<^sub>R \<sharp>* \<Psi>\<^sub>P'
[PROOF STEP]
by(force dest: extractFrameFreshChain)+
[PROOF STATE]
proof (state)
this:
A\<^sub>Q \<sharp>* \<Psi>\<^sub>P'
A\<^sub>R \<sharp>* \<Psi>\<^sub>P'

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from PChain FrR \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* P\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P
[PROOF STEP]
have "\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R
[PROOF STEP]
by(rule tauChainPar1)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have RTrans: "\<Psi> \<otimes> \<Psi>\<^sub>P' \<rhd> R \<longmapsto>\<tau> \<prec> R'"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>P' \<rhd> R \<longmapsto> \<tau> \<prec> R'
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>P' \<rhd> R \<longmapsto> \<tau> \<prec> R'
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto>\<tau> \<prec> R'"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> \<tau> \<prec> R'
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> \<tau> \<prec> R'

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>P' \<rhd> R \<longmapsto> \<tau> \<prec> R'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> \<tau> \<prec> R'

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>P' \<rhd> R \<longmapsto> \<tau> \<prec> R'
[PROOF STEP]
have "\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
have "\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
by(metis frameIntAssociativity Commutativity FrameStatEqTrans frameIntCompositionSym FrameStatEqSym)
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
with FrP' FrQ QimpP' \<open>A\<^sub>P' \<sharp>* \<Psi>\<close> \<open>A\<^sub>Q \<sharp>* \<Psi>\<close> \<open>A\<^sub>P' \<sharp>* \<Psi>\<^sub>R\<close> \<open>A\<^sub>Q \<sharp>* \<Psi>\<^sub>R\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame P' = \<langle>A\<^sub>P', \<Psi>\<^sub>P'\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
insertAssertion (extractFrame Q) (\<Psi> \<otimes> \<Psi>\<^sub>R) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P') (\<Psi> \<otimes> \<Psi>\<^sub>R)
A\<^sub>P' \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>P' \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
have "\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'\<rangle>"
[PROOF STATE]
proof (prove)
using this:
extractFrame P' = \<langle>A\<^sub>P', \<Psi>\<^sub>P'\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
insertAssertion (extractFrame Q) (\<Psi> \<otimes> \<Psi>\<^sub>R) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P') (\<Psi> \<otimes> \<Psi>\<^sub>R)
A\<^sub>P' \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>P' \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'\<rangle>
[PROOF STEP]
using freshCompChain
[PROOF STATE]
proof (prove)
using this:
extractFrame P' = \<langle>A\<^sub>P', \<Psi>\<^sub>P'\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
insertAssertion (extractFrame Q) (\<Psi> \<otimes> \<Psi>\<^sub>R) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P') (\<Psi> \<otimes> \<Psi>\<^sub>R)
A\<^sub>P' \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>P' \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>
\<lbrakk>?xvec \<sharp>* ?\<Psi>; ?xvec \<sharp>* ?\<Psi>'\<rbrakk> \<Longrightarrow> ?xvec \<sharp>* (?\<Psi> \<otimes> ?\<Psi>')
\<lbrakk>?Xs \<sharp>* ?\<Psi>; ?Xs \<sharp>* ?\<Psi>'\<rbrakk> \<Longrightarrow> ?Xs \<sharp>* (?\<Psi> \<otimes> ?\<Psi>')

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'\<rangle>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'\<rangle>

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'\<rangle>

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
have "\<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
by(metis frameIntAssociativity Commutativity FrameStatEqTrans frameIntCompositionSym frameIntAssociativity[THEN FrameStatEqSym])
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'\<rangle>
\<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'\<rangle>
\<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
by(rule FrameStatEqImpCompose)
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>P' \<rhd> R \<longmapsto> \<tau> \<prec> R'
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> \<tau> \<prec> R'
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> \<tau> \<prec> R'
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>P' \<rhd> R \<longmapsto> \<tau> \<prec> R'
[PROOF STEP]
using \<open>A\<^sub>P' \<sharp>* \<Psi>\<close> \<open>A\<^sub>P' \<sharp>* \<Psi>\<^sub>Q\<close> \<open>A\<^sub>Q \<sharp>* \<Psi>\<close> \<open>A\<^sub>Q \<sharp>* \<Psi>\<^sub>P'\<close> \<open>A\<^sub>P' \<sharp>* R\<close> \<open>A\<^sub>Q \<sharp>* R\<close>
              \<open>A\<^sub>P' \<sharp>* A\<^sub>R\<close> \<open>A\<^sub>R \<sharp>* A\<^sub>Q\<close> \<open>A\<^sub>R \<sharp>* \<Psi>\<^sub>P'\<close> \<open>A\<^sub>R \<sharp>* \<Psi>\<^sub>Q\<close> \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* \<Psi>\<^sub>P'\<close> \<open>A\<^sub>Q \<sharp>* \<Psi>\<^sub>P'\<close> FrR \<open>distinct A\<^sub>R\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> \<tau> \<prec> R'
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P', (\<Psi> \<otimes> \<Psi>\<^sub>P') \<otimes> \<Psi>\<^sub>R\<rangle>
A\<^sub>P' \<sharp>* \<Psi>
A\<^sub>P' \<sharp>* \<Psi>\<^sub>Q
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>\<^sub>P'
A\<^sub>P' \<sharp>* R
A\<^sub>Q \<sharp>* R
A\<^sub>P' \<sharp>* A\<^sub>R
A\<^sub>R \<sharp>* A\<^sub>Q
A\<^sub>R \<sharp>* \<Psi>\<^sub>P'
A\<^sub>R \<sharp>* \<Psi>\<^sub>Q
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* \<Psi>\<^sub>P'
A\<^sub>Q \<sharp>* \<Psi>\<^sub>P'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
distinct A\<^sub>R

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>P' \<rhd> R \<longmapsto> \<tau> \<prec> R'
[PROOF STEP]
by(force intro: transferTauFrame)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>P' \<rhd> R \<longmapsto> \<tau> \<prec> R'

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>P' \<rhd> R \<longmapsto> \<tau> \<prec> R'

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
hence "\<Psi> \<rhd> P' \<parallel> R \<longmapsto>\<tau> \<prec> (P' \<parallel> R')"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>P' \<rhd> R \<longmapsto> \<tau> \<prec> R'

goal (1 subgoal):
 1. \<Psi> \<rhd> P' \<parallel> R \<longmapsto> \<tau> \<prec> P' \<parallel> R'
[PROOF STEP]
using FrP' \<open>A\<^sub>P' \<sharp>* \<Psi>\<close> \<open>A\<^sub>P' \<sharp>* R\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>P' \<rhd> R \<longmapsto> \<tau> \<prec> R'
extractFrame P' = \<langle>A\<^sub>P', \<Psi>\<^sub>P'\<rangle>
A\<^sub>P' \<sharp>* \<Psi>
A\<^sub>P' \<sharp>* R

goal (1 subgoal):
 1. \<Psi> \<rhd> P' \<parallel> R \<longmapsto> \<tau> \<prec> P' \<parallel> R'
[PROOF STEP]
by(rule_tac Par2) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P' \<parallel> R \<longmapsto> \<tau> \<prec> P' \<parallel> R'

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P' \<parallel> R \<longmapsto> \<tau> \<prec> P' \<parallel> R'

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from P'Chain
[PROOF STATE]
proof (chain)
picking this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''
[PROOF STEP]
by(metis tauChainStatEq Associativity)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with \<open>\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''"
[PROOF STATE]
proof (prove)
using this:
\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''
[PROOF STEP]
by(rule_tac tauChainStatEq, auto) (metis compositionSym)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
hence "\<Psi> \<rhd> P' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'' \<parallel> R'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''

goal (1 subgoal):
 1. \<Psi> \<rhd> P' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'' \<parallel> R'
[PROOF STEP]
using FrR' \<open>A\<^sub>R' \<sharp>* \<Psi>\<close> \<open>A\<^sub>R' \<sharp>* P'\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
A\<^sub>R' \<sharp>* \<Psi>
A\<^sub>R' \<sharp>* P'

goal (1 subgoal):
 1. \<Psi> \<rhd> P' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'' \<parallel> R'
[PROOF STEP]
by(rule_tac tauChainPar1)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'' \<parallel> R'

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>P \<sharp>* \<Psi>\<^sub>R
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R
\<Psi> \<rhd> P' \<parallel> R \<longmapsto> \<tau> \<prec> P' \<parallel> R'
\<Psi> \<rhd> P' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'' \<parallel> R'
[PROOF STEP]
have "\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> (P'' \<parallel> R')"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>P \<sharp>* \<Psi>\<^sub>R
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R
\<Psi> \<rhd> P' \<parallel> R \<longmapsto> \<tau> \<prec> P' \<parallel> R'
\<Psi> \<rhd> P' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'' \<parallel> R'

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> R'
[PROOF STEP]
by(drule_tac tauActTauStepChain) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> R'

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> R'

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from P'RelQ \<open>\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'\<close>
[PROOF STATE]
proof (chain)
picking this:
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', P'', Q) \<in> Rel
\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'
[PROOF STEP]
have "(\<Psi> \<otimes> \<Psi>\<^sub>R', P'', Q) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', P'', Q) \<in> Rel
\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R', P'', Q) \<in> Rel
[PROOF STEP]
by(blast intro: C3 Associativity compositionSym)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R', P'', Q) \<in> Rel

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with FrR' \<open>A\<^sub>R' \<sharp>* \<Psi>\<close> \<open>A\<^sub>R' \<sharp>* P''\<close> \<open>A\<^sub>R' \<sharp>* Q\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
A\<^sub>R' \<sharp>* \<Psi>
A\<^sub>R' \<sharp>* P''
A\<^sub>R' \<sharp>* Q
(\<Psi> \<otimes> \<Psi>\<^sub>R', P'', Q) \<in> Rel
[PROOF STEP]
have "(\<Psi>, P'' \<parallel> R', Q \<parallel> R') \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
A\<^sub>R' \<sharp>* \<Psi>
A\<^sub>R' \<sharp>* P''
A\<^sub>R' \<sharp>* Q
(\<Psi> \<otimes> \<Psi>\<^sub>R', P'', Q) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, P'' \<parallel> R', Q \<parallel> R') \<in> Rel'
[PROOF STEP]
by(rule_tac C1)
[PROOF STATE]
proof (state)
this:
(\<Psi>, P'' \<parallel> R', Q \<parallel> R') \<in> Rel'

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> \<tau> \<prec> Q'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 3. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> R'
(\<Psi>, P'' \<parallel> R', Q \<parallel> R') \<in> Rel'
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> R'
(\<Psi>, P'' \<parallel> R', Q \<parallel> R') \<in> Rel'

goal (1 subgoal):
 1. \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> R') \<in> Rel'
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q \<parallel> R') \<in> Rel'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
case(cComm1 \<Psi>\<^sub>R M N Q' A\<^sub>Q \<Psi>\<^sub>Q K xvec R' A\<^sub>R)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> Q'
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
distinct A\<^sub>Q
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
distinct A\<^sub>R
\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K
distinct xvec
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* Q
A\<^sub>Q \<sharp>* M
A\<^sub>Q \<sharp>* N
A\<^sub>Q \<sharp>* Q'
A\<^sub>Q \<sharp>* R
A\<^sub>Q \<sharp>* xvec
A\<^sub>Q \<sharp>* R'
A\<^sub>Q \<sharp>* A\<^sub>R
A\<^sub>Q \<sharp>* (P, R)
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* \<Psi>\<^sub>Q
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* K
A\<^sub>R \<sharp>* N
A\<^sub>R \<sharp>* Q'
A\<^sub>R \<sharp>* R
A\<^sub>R \<sharp>* xvec
A\<^sub>R \<sharp>* R'
A\<^sub>R \<sharp>* (P, R)
xvec \<sharp>* \<Psi>
xvec \<sharp>* \<Psi>\<^sub>Q
xvec \<sharp>* Q
xvec \<sharp>* M
xvec \<sharp>* K
xvec \<sharp>* R
xvec \<sharp>* \<Psi>\<^sub>R
xvec \<sharp>* (P, R)

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have  FrQ: "extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>Q \<sharp>* (P, R)\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>Q \<sharp>* (P, R)
[PROOF STEP]
have "A\<^sub>Q \<sharp>* P" and "A\<^sub>Q \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>Q \<sharp>* (P, R)

goal (1 subgoal):
 1. A\<^sub>Q \<sharp>* P &&& A\<^sub>Q \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
A\<^sub>Q \<sharp>* P
A\<^sub>Q \<sharp>* R

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have  FrR: "extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>R \<sharp>* (P, R)\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R \<sharp>* (P, R)
[PROOF STEP]
have "A\<^sub>R \<sharp>* P" and "A\<^sub>R \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R \<sharp>* (P, R)

goal (1 subgoal):
 1. A\<^sub>R \<sharp>* P &&& A\<^sub>R \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* R

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>xvec \<sharp>* (P, R)\<close>
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* (P, R)
[PROOF STEP]
have "xvec \<sharp>* P" and "xvec \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* (P, R)

goal (1 subgoal):
 1. xvec \<sharp>* P &&& xvec \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
xvec \<sharp>* P
xvec \<sharp>* R

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have QTrans: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto>M\<lparr>N\<rparr> \<prec> Q'" and RTrans: "\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'"
      and MeqK: "\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow>K"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> Q' &&& \<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R' &&& \<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K
[PROOF STEP]
by fact+
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> Q'
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from RTrans FrR \<open>distinct A\<^sub>R\<close> \<open>A\<^sub>R \<sharp>* R\<close> \<open>A\<^sub>R \<sharp>* xvec\<close> \<open>xvec \<sharp>* R\<close> \<open>xvec \<sharp>* Q\<close> \<open>xvec \<sharp>* \<Psi>\<close> \<open>xvec \<sharp>* \<Psi>\<^sub>Q\<close> \<open>A\<^sub>R \<sharp>* Q\<close>
                    \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* \<Psi>\<^sub>Q\<close> \<open>xvec \<sharp>* K\<close> \<open>A\<^sub>R \<sharp>* K\<close> \<open>A\<^sub>R \<sharp>* R\<close> \<open>xvec \<sharp>* R\<close> \<open>A\<^sub>R \<sharp>* P\<close> \<open>xvec \<sharp>* P\<close>
                     \<open>A\<^sub>Q \<sharp>* A\<^sub>R\<close> \<open>A\<^sub>Q \<sharp>* xvec\<close> \<open>A\<^sub>R \<sharp>* K\<close> \<open>A\<^sub>R \<sharp>* N\<close> \<open>xvec \<sharp>* K\<close> \<open>distinct xvec\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
distinct A\<^sub>R
A\<^sub>R \<sharp>* R
A\<^sub>R \<sharp>* xvec
xvec \<sharp>* R
xvec \<sharp>* Q
xvec \<sharp>* \<Psi>
xvec \<sharp>* \<Psi>\<^sub>Q
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* \<Psi>\<^sub>Q
xvec \<sharp>* K
A\<^sub>R \<sharp>* K
A\<^sub>R \<sharp>* R
xvec \<sharp>* R
A\<^sub>R \<sharp>* P
xvec \<sharp>* P
A\<^sub>Q \<sharp>* A\<^sub>R
A\<^sub>Q \<sharp>* xvec
A\<^sub>R \<sharp>* K
A\<^sub>R \<sharp>* N
xvec \<sharp>* K
distinct xvec
[PROOF STEP]
obtain p \<Psi>' A\<^sub>R' \<Psi>\<^sub>R' where S: "set p \<subseteq> set xvec \<times> set(p \<bullet> xvec)" and FrR': "extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>"
                           and "(p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'" and "A\<^sub>R' \<sharp>* Q" and "A\<^sub>R' \<sharp>* \<Psi>" and "(p \<bullet> xvec) \<sharp>* \<Psi>"
                           and "(p \<bullet> xvec) \<sharp>* Q" and "(p \<bullet> xvec) \<sharp>* \<Psi>\<^sub>Q" and "(p \<bullet> xvec) \<sharp>* K" and "(p \<bullet> xvec) \<sharp>* R"
                           and "(p \<bullet> xvec) \<sharp>* P" and "(p \<bullet> xvec) \<sharp>* A\<^sub>Q" and "A\<^sub>R' \<sharp>* P" and "A\<^sub>R' \<sharp>* N"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
distinct A\<^sub>R
A\<^sub>R \<sharp>* R
A\<^sub>R \<sharp>* xvec
xvec \<sharp>* R
xvec \<sharp>* Q
xvec \<sharp>* \<Psi>
xvec \<sharp>* \<Psi>\<^sub>Q
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* \<Psi>\<^sub>Q
xvec \<sharp>* K
A\<^sub>R \<sharp>* K
A\<^sub>R \<sharp>* R
xvec \<sharp>* R
A\<^sub>R \<sharp>* P
xvec \<sharp>* P
A\<^sub>Q \<sharp>* A\<^sub>R
A\<^sub>Q \<sharp>* xvec
A\<^sub>R \<sharp>* K
A\<^sub>R \<sharp>* N
xvec \<sharp>* K
distinct xvec

goal (1 subgoal):
 1. (\<And>p A\<^sub>R' \<Psi>\<^sub>R' \<Psi>'. \<lbrakk>set p \<subseteq> set xvec \<times> set (p \<bullet> xvec); extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>; (p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'; A\<^sub>R' \<sharp>* Q; A\<^sub>R' \<sharp>* \<Psi>; (p \<bullet> xvec) \<sharp>* \<Psi>; (p \<bullet> xvec) \<sharp>* Q; (p \<bullet> xvec) \<sharp>* \<Psi>\<^sub>Q; (p \<bullet> xvec) \<sharp>* K; (p \<bullet> xvec) \<sharp>* R; (p \<bullet> xvec) \<sharp>* P; (p \<bullet> xvec) \<sharp>* A\<^sub>Q; A\<^sub>R' \<sharp>* P; A\<^sub>R' \<sharp>* N\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule_tac C="(\<Psi>, Q, \<Psi>\<^sub>Q, K, R, P, A\<^sub>Q)"  and C'="(\<Psi>, Q, \<Psi>\<^sub>Q, K, R, P, A\<^sub>Q)" in expandFrame) (assumption | simp)+
[PROOF STATE]
proof (state)
this:
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
(p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'
A\<^sub>R' \<sharp>* Q
A\<^sub>R' \<sharp>* \<Psi>
(p \<bullet> xvec) \<sharp>* \<Psi>
(p \<bullet> xvec) \<sharp>* Q
(p \<bullet> xvec) \<sharp>* \<Psi>\<^sub>Q
(p \<bullet> xvec) \<sharp>* K
(p \<bullet> xvec) \<sharp>* R
(p \<bullet> xvec) \<sharp>* P
(p \<bullet> xvec) \<sharp>* A\<^sub>Q
A\<^sub>R' \<sharp>* P
A\<^sub>R' \<sharp>* N

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>R \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R \<sharp>* \<Psi>
[PROOF STEP]
have "(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> \<Psi>)"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R \<sharp>* \<Psi>

goal (1 subgoal):
 1. (p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> \<Psi>)
[PROOF STEP]
by(simp add: pt_fresh_star_bij[OF pt_name_inst, OF at_name_inst])
[PROOF STATE]
proof (state)
this:
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> \<Psi>)

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with \<open>xvec \<sharp>* \<Psi>\<close> \<open>(p \<bullet> xvec) \<sharp>* \<Psi>\<close> S
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* \<Psi>
(p \<bullet> xvec) \<sharp>* \<Psi>
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> \<Psi>)
[PROOF STEP]
have "(p \<bullet> A\<^sub>R) \<sharp>* \<Psi>"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* \<Psi>
(p \<bullet> xvec) \<sharp>* \<Psi>
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> \<Psi>)

goal (1 subgoal):
 1. (p \<bullet> A\<^sub>R) \<sharp>* \<Psi>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(p \<bullet> A\<^sub>R) \<sharp>* \<Psi>

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>R \<sharp>* P\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R \<sharp>* P
[PROOF STEP]
have "(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> P)"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R \<sharp>* P

goal (1 subgoal):
 1. (p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> P)
[PROOF STEP]
by(simp add: pt_fresh_star_bij[OF pt_name_inst, OF at_name_inst])
[PROOF STATE]
proof (state)
this:
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> P)

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with \<open>xvec \<sharp>* P\<close> \<open>(p \<bullet> xvec) \<sharp>* P\<close> S
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* P
(p \<bullet> xvec) \<sharp>* P
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> P)
[PROOF STEP]
have "(p \<bullet> A\<^sub>R) \<sharp>* P"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* P
(p \<bullet> xvec) \<sharp>* P
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> P)

goal (1 subgoal):
 1. (p \<bullet> A\<^sub>R) \<sharp>* P
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(p \<bullet> A\<^sub>R) \<sharp>* P

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>R \<sharp>* Q\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R \<sharp>* Q
[PROOF STEP]
have "(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> Q)"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R \<sharp>* Q

goal (1 subgoal):
 1. (p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> Q)
[PROOF STEP]
by(simp add: pt_fresh_star_bij[OF pt_name_inst, OF at_name_inst])
[PROOF STATE]
proof (state)
this:
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> Q)

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with \<open>xvec \<sharp>* Q\<close> \<open>(p \<bullet> xvec) \<sharp>* Q\<close> S
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* Q
(p \<bullet> xvec) \<sharp>* Q
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> Q)
[PROOF STEP]
have "(p \<bullet> A\<^sub>R) \<sharp>* Q"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* Q
(p \<bullet> xvec) \<sharp>* Q
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> Q)

goal (1 subgoal):
 1. (p \<bullet> A\<^sub>R) \<sharp>* Q
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(p \<bullet> A\<^sub>R) \<sharp>* Q

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>R \<sharp>* R\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R \<sharp>* R
[PROOF STEP]
have "(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> R)"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R \<sharp>* R

goal (1 subgoal):
 1. (p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> R)
[PROOF STEP]
by(simp add: pt_fresh_star_bij[OF pt_name_inst, OF at_name_inst])
[PROOF STATE]
proof (state)
this:
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> R)

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with \<open>xvec \<sharp>* R\<close> \<open>(p \<bullet> xvec) \<sharp>* R\<close> S
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* R
(p \<bullet> xvec) \<sharp>* R
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> R)
[PROOF STEP]
have "(p \<bullet> A\<^sub>R) \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* R
(p \<bullet> xvec) \<sharp>* R
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> R)

goal (1 subgoal):
 1. (p \<bullet> A\<^sub>R) \<sharp>* R
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(p \<bullet> A\<^sub>R) \<sharp>* R

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>R \<sharp>* K\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R \<sharp>* K
[PROOF STEP]
have "(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> K)"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R \<sharp>* K

goal (1 subgoal):
 1. (p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> K)
[PROOF STEP]
by(simp add: pt_fresh_star_bij[OF pt_name_inst, OF at_name_inst])
[PROOF STATE]
proof (state)
this:
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> K)

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with \<open>xvec \<sharp>* K\<close> \<open>(p \<bullet> xvec) \<sharp>* K\<close> S
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* K
(p \<bullet> xvec) \<sharp>* K
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> K)
[PROOF STEP]
have "(p \<bullet> A\<^sub>R) \<sharp>* K"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* K
(p \<bullet> xvec) \<sharp>* K
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> A\<^sub>R) \<sharp>* (p \<bullet> K)

goal (1 subgoal):
 1. (p \<bullet> A\<^sub>R) \<sharp>* K
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(p \<bullet> A\<^sub>R) \<sharp>* K

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>Q \<sharp>* xvec\<close> \<open>(p \<bullet> xvec) \<sharp>* A\<^sub>Q\<close> \<open>A\<^sub>Q \<sharp>* M\<close> S
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>Q \<sharp>* xvec
(p \<bullet> xvec) \<sharp>* A\<^sub>Q
A\<^sub>Q \<sharp>* M
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
[PROOF STEP]
have "A\<^sub>Q \<sharp>* (p \<bullet> M)"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>Q \<sharp>* xvec
(p \<bullet> xvec) \<sharp>* A\<^sub>Q
A\<^sub>Q \<sharp>* M
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)

goal (1 subgoal):
 1. A\<^sub>Q \<sharp>* (p \<bullet> M)
[PROOF STEP]
by(simp add: freshChainSimps)
[PROOF STATE]
proof (state)
this:
A\<^sub>Q \<sharp>* (p \<bullet> M)

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>Q \<sharp>* xvec\<close> \<open>(p \<bullet> xvec) \<sharp>* A\<^sub>Q\<close> \<open>A\<^sub>Q \<sharp>* A\<^sub>R\<close> S
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>Q \<sharp>* xvec
(p \<bullet> xvec) \<sharp>* A\<^sub>Q
A\<^sub>Q \<sharp>* A\<^sub>R
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
[PROOF STEP]
have "A\<^sub>Q \<sharp>* (p \<bullet> A\<^sub>R)"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>Q \<sharp>* xvec
(p \<bullet> xvec) \<sharp>* A\<^sub>Q
A\<^sub>Q \<sharp>* A\<^sub>R
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)

goal (1 subgoal):
 1. A\<^sub>Q \<sharp>* (p \<bullet> A\<^sub>R)
[PROOF STEP]
by(simp add: freshChainSimps)
[PROOF STATE]
proof (state)
this:
A\<^sub>Q \<sharp>* (p \<bullet> A\<^sub>R)

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from QTrans S \<open>xvec \<sharp>* Q\<close> \<open>(p \<bullet> xvec) \<sharp>* Q\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> Q'
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
xvec \<sharp>* Q
(p \<bullet> xvec) \<sharp>* Q
[PROOF STEP]
have "(p \<bullet> (\<Psi> \<otimes> \<Psi>\<^sub>R)) \<rhd> Q \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> Q'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> Q'
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
xvec \<sharp>* Q
(p \<bullet> xvec) \<sharp>* Q

goal (1 subgoal):
 1. p \<bullet> \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> Q'
[PROOF STEP]
by(rule_tac inputPermFrameSubject) (assumption | auto simp add: fresh_star_def)+
[PROOF STATE]
proof (state)
this:
p \<bullet> \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> Q'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with \<open>xvec \<sharp>* \<Psi>\<close> \<open>(p \<bullet> xvec) \<sharp>* \<Psi>\<close> S
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* \<Psi>
(p \<bullet> xvec) \<sharp>* \<Psi>
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
p \<bullet> \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> Q'
[PROOF STEP]
have QTrans: "(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<rhd> Q \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> Q'"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* \<Psi>
(p \<bullet> xvec) \<sharp>* \<Psi>
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
p \<bullet> \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> Q'

goal (1 subgoal):
 1. \<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> Q \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> Q'
[PROOF STEP]
by(simp add: eqvts)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> Q \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> Q'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from FrR
[PROOF STATE]
proof (chain)
picking this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
have "(p \<bullet> extractFrame R) = p \<bullet> \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>"
[PROOF STATE]
proof (prove)
using this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. p \<bullet> extractFrame R = p \<bullet> \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
p \<bullet> extractFrame R = p \<bullet> \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with \<open>xvec \<sharp>* R\<close> \<open>(p \<bullet> xvec) \<sharp>* R\<close> S
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* R
(p \<bullet> xvec) \<sharp>* R
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
p \<bullet> extractFrame R = p \<bullet> \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
have FrR: "extractFrame R = \<langle>(p \<bullet> A\<^sub>R), (p \<bullet> \<Psi>\<^sub>R)\<rangle>"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* R
(p \<bullet> xvec) \<sharp>* R
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
p \<bullet> extractFrame R = p \<bullet> \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. extractFrame R = \<langle>p \<bullet> A\<^sub>R, p \<bullet> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
by(simp add: eqvts)
[PROOF STATE]
proof (state)
this:
extractFrame R = \<langle>p \<bullet> A\<^sub>R, p \<bullet> \<Psi>\<^sub>R\<rangle>

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from MeqK
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K
[PROOF STEP]
have "(p \<bullet> (\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R)) \<turnstile> (p \<bullet> M) \<leftrightarrow> (p \<bullet> K)"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K

goal (1 subgoal):
 1. (p \<bullet> \<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> (p \<bullet> K)
[PROOF STEP]
by(rule chanEqClosed)
[PROOF STATE]
proof (state)
this:
(p \<bullet> \<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> (p \<bullet> K)

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with \<open>xvec \<sharp>* \<Psi>\<close> \<open>(p \<bullet> xvec) \<sharp>* \<Psi>\<close> \<open>xvec \<sharp>* \<Psi>\<^sub>Q\<close> \<open>(p \<bullet> xvec) \<sharp>* \<Psi>\<^sub>Q\<close> \<open>xvec \<sharp>* K\<close> \<open>(p \<bullet> xvec) \<sharp>* K\<close> S
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* \<Psi>
(p \<bullet> xvec) \<sharp>* \<Psi>
xvec \<sharp>* \<Psi>\<^sub>Q
(p \<bullet> xvec) \<sharp>* \<Psi>\<^sub>Q
xvec \<sharp>* K
(p \<bullet> xvec) \<sharp>* K
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> \<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> (p \<bullet> K)
[PROOF STEP]
have MeqK: "\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> K"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* \<Psi>
(p \<bullet> xvec) \<sharp>* \<Psi>
xvec \<sharp>* \<Psi>\<^sub>Q
(p \<bullet> xvec) \<sharp>* \<Psi>\<^sub>Q
xvec \<sharp>* K
(p \<bullet> xvec) \<sharp>* K
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> \<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> (p \<bullet> K)

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> K
[PROOF STEP]
by(simp add: eqvts)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> K

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have "\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P \<leadsto><Rel> Q"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P \<leadsto><Rel> Q
[PROOF STEP]
by(rule PSimQ')
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P \<leadsto><Rel> Q

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with QTrans
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> Q \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> Q'
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P \<leadsto><Rel> Q
[PROOF STEP]
obtain P' P'' where PTrans: "\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) : Q \<rhd> P \<Longrightarrow>(p \<bullet> M)\<lparr>N\<rparr> \<prec> P''"
                                and P''Chain: "(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'"
                                and P'RelQ': "((\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>', P', Q') \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> Q \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> Q'
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P \<leadsto><Rel> Q

goal (1 subgoal):
 1. (\<And>P'' P'. \<lbrakk>\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) : Q \<rhd> P \<Longrightarrow>(p \<bullet> M)\<lparr>N\<rparr> \<prec> P''; (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'; ((\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>', P', Q') \<in> Rel\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(fastforce dest: weakSimE)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) : Q \<rhd> P \<Longrightarrow>(p \<bullet> M)\<lparr>N\<rparr> \<prec> P''
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
((\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>', P', Q') \<in> Rel

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from PTrans QTrans \<open>A\<^sub>R' \<sharp>* P\<close> \<open>A\<^sub>R' \<sharp>* Q\<close> \<open>A\<^sub>R' \<sharp>* N\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) : Q \<rhd> P \<Longrightarrow>(p \<bullet> M)\<lparr>N\<rparr> \<prec> P''
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> Q \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> Q'
A\<^sub>R' \<sharp>* P
A\<^sub>R' \<sharp>* Q
A\<^sub>R' \<sharp>* N
[PROOF STEP]
have "A\<^sub>R' \<sharp>* P''" and "A\<^sub>R' \<sharp>* Q'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) : Q \<rhd> P \<Longrightarrow>(p \<bullet> M)\<lparr>N\<rparr> \<prec> P''
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> Q \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> Q'
A\<^sub>R' \<sharp>* P
A\<^sub>R' \<sharp>* Q
A\<^sub>R' \<sharp>* N

goal (1 subgoal):
 1. A\<^sub>R' \<sharp>* P'' &&& A\<^sub>R' \<sharp>* Q'
[PROOF STEP]
by(blast dest: weakInputFreshChainDerivative inputFreshChainDerivative)+
[PROOF STATE]
proof (state)
this:
A\<^sub>R' \<sharp>* P''
A\<^sub>R' \<sharp>* Q'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from PTrans
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) : Q \<rhd> P \<Longrightarrow>(p \<bullet> M)\<lparr>N\<rparr> \<prec> P''
[PROOF STEP]
obtain P''' where PChain: "\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''"
                              and QimpP''': "insertAssertion (extractFrame Q) (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P''') (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R))"
                              and P'''Trans: "\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P''' \<longmapsto>(p \<bullet> M)\<lparr>N\<rparr> \<prec> P''"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) : Q \<rhd> P \<Longrightarrow>(p \<bullet> M)\<lparr>N\<rparr> \<prec> P''

goal (1 subgoal):
 1. (\<And>P'''. \<lbrakk>\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''; insertAssertion (extractFrame Q) (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P''') (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)); \<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P''' \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> P''\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule weakTransitionE)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''
insertAssertion (extractFrame Q) (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P''') (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R))
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P''' \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> P''

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from PChain \<open>xvec \<sharp>* P\<close> \<open>(p \<bullet> A\<^sub>R) \<sharp>* P\<close> \<open>A\<^sub>R' \<sharp>* P\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''
xvec \<sharp>* P
(p \<bullet> A\<^sub>R) \<sharp>* P
A\<^sub>R' \<sharp>* P
[PROOF STEP]
have "xvec \<sharp>* P'''" and "(p \<bullet> A\<^sub>R) \<sharp>* P'''" and "A\<^sub>R' \<sharp>* P'''"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''
xvec \<sharp>* P
(p \<bullet> A\<^sub>R) \<sharp>* P
A\<^sub>R' \<sharp>* P

goal (1 subgoal):
 1. xvec \<sharp>* P''' &&& (p \<bullet> A\<^sub>R) \<sharp>* P''' &&& A\<^sub>R' \<sharp>* P'''
[PROOF STEP]
by(force intro: tauChainFreshChain)+
[PROOF STATE]
proof (state)
this:
xvec \<sharp>* P'''
(p \<bullet> A\<^sub>R) \<sharp>* P'''
A\<^sub>R' \<sharp>* P'''

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from P'''Trans \<open>A\<^sub>R' \<sharp>* P'''\<close> \<open>A\<^sub>R' \<sharp>* N\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P''' \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> P''
A\<^sub>R' \<sharp>* P'''
A\<^sub>R' \<sharp>* N
[PROOF STEP]
have "A\<^sub>R' \<sharp>* P''"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P''' \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> P''
A\<^sub>R' \<sharp>* P'''
A\<^sub>R' \<sharp>* N

goal (1 subgoal):
 1. A\<^sub>R' \<sharp>* P''
[PROOF STEP]
by(force dest: inputFreshChainDerivative)
[PROOF STATE]
proof (state)
this:
A\<^sub>R' \<sharp>* P''

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
obtain A\<^sub>P''' \<Psi>\<^sub>P''' where FrP''': "extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>" and "A\<^sub>P''' \<sharp>* (\<Psi>, A\<^sub>Q, \<Psi>\<^sub>Q, p \<bullet> A\<^sub>R, p \<bullet> \<Psi>\<^sub>R, p \<bullet> M, N, K, R, P''', xvec)" and "distinct A\<^sub>P'''"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>A\<^sub>P''' \<Psi>\<^sub>P'''. \<lbrakk>extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>; A\<^sub>P''' \<sharp>* (\<Psi>, A\<^sub>Q, \<Psi>\<^sub>Q, p \<bullet> A\<^sub>R, p \<bullet> \<Psi>\<^sub>R, p \<bullet> M, N, K, R, P''', xvec); distinct A\<^sub>P'''\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule freshFrame)
[PROOF STATE]
proof (state)
this:
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
A\<^sub>P''' \<sharp>* (\<Psi>, A\<^sub>Q, \<Psi>\<^sub>Q, p \<bullet> A\<^sub>R, p \<bullet> \<Psi>\<^sub>R, p \<bullet> M, N, K, R, P''', xvec)
distinct A\<^sub>P'''

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
hence "A\<^sub>P''' \<sharp>* \<Psi>" and "A\<^sub>P''' \<sharp>* A\<^sub>Q" and "A\<^sub>P''' \<sharp>* \<Psi>\<^sub>Q" and "A\<^sub>P''' \<sharp>* (p \<bullet> M)" and "A\<^sub>P''' \<sharp>* R"
      and "A\<^sub>P''' \<sharp>* N" and "A\<^sub>P''' \<sharp>* K" and "A\<^sub>P''' \<sharp>* (p \<bullet> A\<^sub>R)" and "A\<^sub>P''' \<sharp>* P'''" and "A\<^sub>P''' \<sharp>* xvec" and "A\<^sub>P''' \<sharp>* (p \<bullet> \<Psi>\<^sub>R)"
[PROOF STATE]
proof (prove)
using this:
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
A\<^sub>P''' \<sharp>* (\<Psi>, A\<^sub>Q, \<Psi>\<^sub>Q, p \<bullet> A\<^sub>R, p \<bullet> \<Psi>\<^sub>R, p \<bullet> M, N, K, R, P''', xvec)
distinct A\<^sub>P'''

goal (1 subgoal):
 1. ((A\<^sub>P''' \<sharp>* \<Psi> &&& A\<^sub>P''' \<sharp>* A\<^sub>Q) &&& A\<^sub>P''' \<sharp>* \<Psi>\<^sub>Q &&& A\<^sub>P''' \<sharp>* (p \<bullet> M) &&& A\<^sub>P''' \<sharp>* R) &&& (A\<^sub>P''' \<sharp>* N &&& A\<^sub>P''' \<sharp>* K &&& A\<^sub>P''' \<sharp>* (p \<bullet> A\<^sub>R)) &&& A\<^sub>P''' \<sharp>* P''' &&& A\<^sub>P''' \<sharp>* xvec &&& A\<^sub>P''' \<sharp>* (p \<bullet> \<Psi>\<^sub>R)
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* A\<^sub>Q
A\<^sub>P''' \<sharp>* \<Psi>\<^sub>Q
A\<^sub>P''' \<sharp>* (p \<bullet> M)
A\<^sub>P''' \<sharp>* R
A\<^sub>P''' \<sharp>* N
A\<^sub>P''' \<sharp>* K
A\<^sub>P''' \<sharp>* (p \<bullet> A\<^sub>R)
A\<^sub>P''' \<sharp>* P'''
A\<^sub>P''' \<sharp>* xvec
A\<^sub>P''' \<sharp>* (p \<bullet> \<Psi>\<^sub>R)

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have "\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
by(metis frameResChainPres frameNilStatEq Commutativity AssertionStatEqTrans Composition Associativity)
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle>

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle>

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with QimpP''' FrP''' FrQ \<open>A\<^sub>P''' \<sharp>* \<Psi>\<close> \<open>A\<^sub>Q \<sharp>* \<Psi>\<close> \<open>A\<^sub>P''' \<sharp>* (p \<bullet> \<Psi>\<^sub>R)\<close> \<open>A\<^sub>Q \<sharp>* \<Psi>\<^sub>R\<close> \<open>A\<^sub>Q \<sharp>* xvec\<close> \<open>(p \<bullet> xvec) \<sharp>* A\<^sub>Q\<close> S
[PROOF STATE]
proof (chain)
picking this:
insertAssertion (extractFrame Q) (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P''') (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R))
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* (p \<bullet> \<Psi>\<^sub>R)
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* xvec
(p \<bullet> xvec) \<sharp>* A\<^sub>Q
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
have "\<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>P'''\<rangle>"
[PROOF STATE]
proof (prove)
using this:
insertAssertion (extractFrame Q) (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P''') (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R))
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* (p \<bullet> \<Psi>\<^sub>R)
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* xvec
(p \<bullet> xvec) \<sharp>* A\<^sub>Q
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle>

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>P'''\<rangle>
[PROOF STEP]
using freshCompChain
[PROOF STATE]
proof (prove)
using this:
insertAssertion (extractFrame Q) (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P''') (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R))
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* (p \<bullet> \<Psi>\<^sub>R)
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* xvec
(p \<bullet> xvec) \<sharp>* A\<^sub>Q
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle>
\<lbrakk>?xvec \<sharp>* ?\<Psi>; ?xvec \<sharp>* ?\<Psi>'\<rbrakk> \<Longrightarrow> ?xvec \<sharp>* (?\<Psi> \<otimes> ?\<Psi>')
\<lbrakk>?Xs \<sharp>* ?\<Psi>; ?Xs \<sharp>* ?\<Psi>'\<rbrakk> \<Longrightarrow> ?Xs \<sharp>* (?\<Psi> \<otimes> ?\<Psi>')

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>P'''\<rangle>
[PROOF STEP]
by(simp add: freshChainSimps)
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>P'''\<rangle>

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>P'''\<rangle>

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have "\<langle>A\<^sub>P''', (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>P'''\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<langle>A\<^sub>P''', (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>P'''\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle>
[PROOF STEP]
by(metis frameResChainPres frameNilStatEq Commutativity AssertionStatEqTrans Composition Associativity)
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>P''', (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>P'''\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle>

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle>
\<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>P'''\<rangle>
\<langle>A\<^sub>P''', (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>P'''\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle>
[PROOF STEP]
have QImpP''': "\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle>"
[PROOF STATE]
proof (prove)
using this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle>
\<langle>A\<^sub>Q, (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>P'''\<rangle>
\<langle>A\<^sub>P''', (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>\<^sub>P'''\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle>

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle>
[PROOF STEP]
by(rule FrameStatEqImpCompose)
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle>

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from PChain FrR \<open>(p \<bullet> A\<^sub>R) \<sharp>* \<Psi>\<close> \<open>(p \<bullet> A\<^sub>R) \<sharp>* P\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''
extractFrame R = \<langle>p \<bullet> A\<^sub>R, p \<bullet> \<Psi>\<^sub>R\<rangle>
(p \<bullet> A\<^sub>R) \<sharp>* \<Psi>
(p \<bullet> A\<^sub>R) \<sharp>* P
[PROOF STEP]
have "\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''' \<parallel> R"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''
extractFrame R = \<langle>p \<bullet> A\<^sub>R, p \<bullet> \<Psi>\<^sub>R\<rangle>
(p \<bullet> A\<^sub>R) \<sharp>* \<Psi>
(p \<bullet> A\<^sub>R) \<sharp>* P

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''' \<parallel> R
[PROOF STEP]
by(rule tauChainPar1)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''' \<parallel> R

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''' \<parallel> R

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from RTrans FrR P'''Trans MeqK QImpP''' FrP''' FrQ \<open>distinct A\<^sub>P'''\<close> \<open>distinct A\<^sub>R\<close> \<open>A\<^sub>P''' \<sharp>* (p \<bullet> A\<^sub>R)\<close> \<open>A\<^sub>Q \<sharp>* (p \<bullet> A\<^sub>R)\<close>
      \<open>(p \<bullet> A\<^sub>R) \<sharp>* \<Psi>\<close> \<open>(p \<bullet> A\<^sub>R) \<sharp>* P'''\<close> \<open>(p \<bullet> A\<^sub>R) \<sharp>* Q\<close> \<open>(p \<bullet> A\<^sub>R) \<sharp>* R\<close> \<open>(p \<bullet> A\<^sub>R) \<sharp>* K\<close> \<open>A\<^sub>P''' \<sharp>* \<Psi>\<close> \<open>A\<^sub>P''' \<sharp>* R\<close>
      \<open>A\<^sub>P''' \<sharp>* P'''\<close> \<open>A\<^sub>P''' \<sharp>* (p \<bullet> M)\<close> \<open>A\<^sub>Q \<sharp>* R\<close>  \<open>A\<^sub>Q \<sharp>* (p \<bullet> M)\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'
extractFrame R = \<langle>p \<bullet> A\<^sub>R, p \<bullet> \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P''' \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> P''
\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> K
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle>
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
distinct A\<^sub>P'''
distinct A\<^sub>R
A\<^sub>P''' \<sharp>* (p \<bullet> A\<^sub>R)
A\<^sub>Q \<sharp>* (p \<bullet> A\<^sub>R)
(p \<bullet> A\<^sub>R) \<sharp>* \<Psi>
(p \<bullet> A\<^sub>R) \<sharp>* P'''
(p \<bullet> A\<^sub>R) \<sharp>* Q
(p \<bullet> A\<^sub>R) \<sharp>* R
(p \<bullet> A\<^sub>R) \<sharp>* K
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* R
A\<^sub>P''' \<sharp>* P'''
A\<^sub>P''' \<sharp>* (p \<bullet> M)
A\<^sub>Q \<sharp>* R
A\<^sub>Q \<sharp>* (p \<bullet> M)
[PROOF STEP]
obtain K' where "\<Psi> \<otimes> \<Psi>\<^sub>P''' \<rhd> R \<longmapsto>K'\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'" and "\<Psi> \<otimes> \<Psi>\<^sub>P''' \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> K'" and "(p \<bullet> A\<^sub>R) \<sharp>* K'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'
extractFrame R = \<langle>p \<bullet> A\<^sub>R, p \<bullet> \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P''' \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> P''
\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> K
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> (p \<bullet> \<Psi>\<^sub>R)\<rangle>
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
distinct A\<^sub>P'''
distinct A\<^sub>R
A\<^sub>P''' \<sharp>* (p \<bullet> A\<^sub>R)
A\<^sub>Q \<sharp>* (p \<bullet> A\<^sub>R)
(p \<bullet> A\<^sub>R) \<sharp>* \<Psi>
(p \<bullet> A\<^sub>R) \<sharp>* P'''
(p \<bullet> A\<^sub>R) \<sharp>* Q
(p \<bullet> A\<^sub>R) \<sharp>* R
(p \<bullet> A\<^sub>R) \<sharp>* K
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* R
A\<^sub>P''' \<sharp>* P'''
A\<^sub>P''' \<sharp>* (p \<bullet> M)
A\<^sub>Q \<sharp>* R
A\<^sub>Q \<sharp>* (p \<bullet> M)

goal (1 subgoal):
 1. (\<And>K'. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P''' \<rhd> R \<longmapsto> K'\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'; \<Psi> \<otimes> \<Psi>\<^sub>P''' \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> K'; (p \<bullet> A\<^sub>R) \<sharp>* K'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule_tac comm1Aux) (assumption | simp)+
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<rhd> R \<longmapsto> K'\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> K'
(p \<bullet> A\<^sub>R) \<sharp>* K'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with P'''Trans FrP'''
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P''' \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> P''
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<rhd> R \<longmapsto> K'\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> K'
(p \<bullet> A\<^sub>R) \<sharp>* K'
[PROOF STEP]
have "\<Psi> \<rhd> P''' \<parallel> R \<longmapsto>\<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>(P'' \<parallel> R')"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P''' \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> P''
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<rhd> R \<longmapsto> K'\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> K'
(p \<bullet> A\<^sub>R) \<sharp>* K'

goal (1 subgoal):
 1. \<Psi> \<rhd> P''' \<parallel> R \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R'
[PROOF STEP]
using FrR \<open>(p \<bullet> A\<^sub>R) \<sharp>* \<Psi>\<close> \<open>(p \<bullet> A\<^sub>R) \<sharp>* P'''\<close> \<open>(p \<bullet> A\<^sub>R) \<sharp>* R\<close>
      \<open>xvec \<sharp>* P'''\<close> \<open>A\<^sub>P''' \<sharp>* \<Psi>\<close> \<open>A\<^sub>P''' \<sharp>* P'''\<close> \<open>A\<^sub>P''' \<sharp>* R\<close> \<open>A\<^sub>P''' \<sharp>* (p \<bullet> M)\<close> \<open>(p \<bullet> A\<^sub>R) \<sharp>* K'\<close> \<open>A\<^sub>P''' \<sharp>* (p \<bullet> A\<^sub>R)\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<rhd> P''' \<longmapsto> (p \<bullet> M)\<lparr>N\<rparr> \<prec> P''
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<rhd> R \<longmapsto> K'\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<turnstile> (p \<bullet> M) \<leftrightarrow> K'
(p \<bullet> A\<^sub>R) \<sharp>* K'
extractFrame R = \<langle>p \<bullet> A\<^sub>R, p \<bullet> \<Psi>\<^sub>R\<rangle>
(p \<bullet> A\<^sub>R) \<sharp>* \<Psi>
(p \<bullet> A\<^sub>R) \<sharp>* P'''
(p \<bullet> A\<^sub>R) \<sharp>* R
xvec \<sharp>* P'''
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* P'''
A\<^sub>P''' \<sharp>* R
A\<^sub>P''' \<sharp>* (p \<bullet> M)
(p \<bullet> A\<^sub>R) \<sharp>* K'
A\<^sub>P''' \<sharp>* (p \<bullet> A\<^sub>R)

goal (1 subgoal):
 1. \<Psi> \<rhd> P''' \<parallel> R \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R'
[PROOF STEP]
by(rule_tac Comm1)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P''' \<parallel> R \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P''' \<parallel> R \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from P''Chain \<open>A\<^sub>R' \<sharp>* P''\<close>
[PROOF STATE]
proof (chain)
picking this:
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
A\<^sub>R' \<sharp>* P''
[PROOF STEP]
have "A\<^sub>R' \<sharp>* P'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
A\<^sub>R' \<sharp>* P''

goal (1 subgoal):
 1. A\<^sub>R' \<sharp>* P'
[PROOF STEP]
by(rule tauChainFreshChain)
[PROOF STATE]
proof (state)
this:
A\<^sub>R' \<sharp>* P'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>(p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'\<close>
[PROOF STATE]
proof (chain)
picking this:
(p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'
[PROOF STEP]
have "(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<simeq> \<Psi> \<otimes> \<Psi>\<^sub>R'"
[PROOF STATE]
proof (prove)
using this:
(p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'

goal (1 subgoal):
 1. (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<simeq> \<Psi> \<otimes> \<Psi>\<^sub>R'
[PROOF STEP]
by(metis Associativity AssertionStatEqTrans AssertionStatEqSym compositionSym)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<simeq> \<Psi> \<otimes> \<Psi>\<^sub>R'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with P''Chain
[PROOF STATE]
proof (chain)
picking this:
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<simeq> \<Psi> \<otimes> \<Psi>\<^sub>R'
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<simeq> \<Psi> \<otimes> \<Psi>\<^sub>R'

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
[PROOF STEP]
by(rule tauChainStatEq)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
hence "\<Psi> \<rhd> P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'

goal (1 subgoal):
 1. \<Psi> \<rhd> P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R'
[PROOF STEP]
using FrR' \<open>A\<^sub>R' \<sharp>* \<Psi>\<close> \<open>A\<^sub>R' \<sharp>* P''\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
A\<^sub>R' \<sharp>* \<Psi>
A\<^sub>R' \<sharp>* P''

goal (1 subgoal):
 1. \<Psi> \<rhd> P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R'
[PROOF STEP]
by(rule tauChainPar1)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
hence "\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>(P'' \<parallel> R') \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>(P' \<parallel> R')"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R'

goal (1 subgoal):
 1. \<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R'
xvec \<sharp>* \<Psi>

goal (1 subgoal):
 1. \<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'
[PROOF STEP]
by(rule tauChainResChainPres)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''' \<parallel> R
\<Psi> \<rhd> P''' \<parallel> R \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R'
\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'
[PROOF STEP]
have "\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>(P' \<parallel> R')"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''' \<parallel> R
\<Psi> \<rhd> P''' \<parallel> R \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R'
\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'
[PROOF STEP]
by(drule_tac tauActTauStepChain) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from P'RelQ' \<open>(p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'\<close>
[PROOF STATE]
proof (chain)
picking this:
((\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>', P', Q') \<in> Rel
(p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'
[PROOF STEP]
have "(\<Psi> \<otimes> \<Psi>\<^sub>R', P', Q') \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
((\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>', P', Q') \<in> Rel
(p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R', P', Q') \<in> Rel
[PROOF STEP]
by(metis C3 Associativity compositionSym)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R', P', Q') \<in> Rel

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with FrR' \<open>A\<^sub>R' \<sharp>* P'\<close> \<open>A\<^sub>R' \<sharp>* Q'\<close> \<open>A\<^sub>R' \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
A\<^sub>R' \<sharp>* P'
A\<^sub>R' \<sharp>* Q'
A\<^sub>R' \<sharp>* \<Psi>
(\<Psi> \<otimes> \<Psi>\<^sub>R', P', Q') \<in> Rel
[PROOF STEP]
have "(\<Psi>, P' \<parallel> R', Q' \<parallel> R') \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
A\<^sub>R' \<sharp>* P'
A\<^sub>R' \<sharp>* Q'
A\<^sub>R' \<sharp>* \<Psi>
(\<Psi> \<otimes> \<Psi>\<^sub>R', P', Q') \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, P' \<parallel> R', Q' \<parallel> R') \<in> Rel'
[PROOF STEP]
by(rule_tac C1)
[PROOF STATE]
proof (state)
this:
(\<Psi>, P' \<parallel> R', Q' \<parallel> R') \<in> Rel'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with \<open>xvec \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* \<Psi>
(\<Psi>, P' \<parallel> R', Q' \<parallel> R') \<in> Rel'
[PROOF STEP]
have "(\<Psi>, \<lparr>\<nu>*xvec\<rparr>(P' \<parallel> R'), \<lparr>\<nu>*xvec\<rparr>(Q' \<parallel> R')) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* \<Psi>
(\<Psi>, P' \<parallel> R', Q' \<parallel> R') \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R', \<lparr>\<nu>*xvec\<rparr>Q' \<parallel> R') \<in> Rel'
[PROOF STEP]
by(rule_tac C2)
[PROOF STATE]
proof (state)
this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R', \<lparr>\<nu>*xvec\<rparr>Q' \<parallel> R') \<in> Rel'

goal (2 subgoals):
 1. \<And>\<Psi>\<^sub>Q M N P' A\<^sub>P \<Psi>\<^sub>P K xvec Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
 2. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R', \<lparr>\<nu>*xvec\<rparr>Q' \<parallel> R') \<in> Rel'
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R', \<lparr>\<nu>*xvec\<rparr>Q' \<parallel> R') \<in> Rel'

goal (1 subgoal):
 1. \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', \<lparr>\<nu>*xvec\<rparr>Q' \<parallel> R') \<in> Rel'
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', \<lparr>\<nu>*xvec\<rparr>Q' \<parallel> R') \<in> Rel'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
case(cComm2 \<Psi>\<^sub>R M xvec N Q' A\<^sub>Q \<Psi>\<^sub>Q K R' A\<^sub>R)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
distinct A\<^sub>Q
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
distinct A\<^sub>R
\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K
distinct xvec
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* Q
A\<^sub>Q \<sharp>* M
A\<^sub>Q \<sharp>* N
A\<^sub>Q \<sharp>* Q'
A\<^sub>Q \<sharp>* R
A\<^sub>Q \<sharp>* xvec
A\<^sub>Q \<sharp>* R'
A\<^sub>Q \<sharp>* A\<^sub>R
A\<^sub>Q \<sharp>* (P, R)
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* \<Psi>\<^sub>Q
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* K
A\<^sub>R \<sharp>* N
A\<^sub>R \<sharp>* Q'
A\<^sub>R \<sharp>* R
A\<^sub>R \<sharp>* xvec
A\<^sub>R \<sharp>* R'
A\<^sub>R \<sharp>* (P, R)
xvec \<sharp>* \<Psi>
xvec \<sharp>* \<Psi>\<^sub>Q
xvec \<sharp>* Q
xvec \<sharp>* M
xvec \<sharp>* K
xvec \<sharp>* R
xvec \<sharp>* \<Psi>\<^sub>R
xvec \<sharp>* (P, R)

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have  FrQ: "extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>Q \<sharp>* (P, R)\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>Q \<sharp>* (P, R)
[PROOF STEP]
have "A\<^sub>Q \<sharp>* P" and "A\<^sub>Q \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>Q \<sharp>* (P, R)

goal (1 subgoal):
 1. A\<^sub>Q \<sharp>* P &&& A\<^sub>Q \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
A\<^sub>Q \<sharp>* P
A\<^sub>Q \<sharp>* R

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have  FrR: "extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
by fact
[PROOF STATE]
proof (state)
this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>A\<^sub>R \<sharp>* (P, R)\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R \<sharp>* (P, R)
[PROOF STEP]
have "A\<^sub>R \<sharp>* P" and "A\<^sub>R \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R \<sharp>* (P, R)

goal (1 subgoal):
 1. A\<^sub>R \<sharp>* P &&& A\<^sub>R \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* R

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>xvec \<sharp>* (P, R)\<close>
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* (P, R)
[PROOF STEP]
have "xvec \<sharp>* P" and "xvec \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* (P, R)

goal (1 subgoal):
 1. xvec \<sharp>* P &&& xvec \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
xvec \<sharp>* P
xvec \<sharp>* R

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have QTrans: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto>M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'" and RTrans: "\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto>K\<lparr>N\<rparr> \<prec> R'"
     and MeqK: "\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow>K"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q' &&& \<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> R' &&& \<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K
[PROOF STEP]
by fact+
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from RTrans FrR \<open>distinct A\<^sub>R\<close> \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* R\<close> \<open>A\<^sub>R \<sharp>* Q'\<close> \<open>A\<^sub>R \<sharp>* N\<close> \<open>A\<^sub>R \<sharp>* P\<close> \<open>A\<^sub>R \<sharp>* xvec\<close> \<open>A\<^sub>R \<sharp>* K\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
distinct A\<^sub>R
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* R
A\<^sub>R \<sharp>* Q'
A\<^sub>R \<sharp>* N
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* xvec
A\<^sub>R \<sharp>* K
[PROOF STEP]
obtain \<Psi>' A\<^sub>R' \<Psi>\<^sub>R' where  ReqR': "\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'" and FrR': "extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>"
                         and "A\<^sub>R' \<sharp>* \<Psi>" and "A\<^sub>R' \<sharp>* P" and "A\<^sub>R' \<sharp>* Q'" and "A\<^sub>R' \<sharp>* N" and "A\<^sub>R' \<sharp>* xvec"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
distinct A\<^sub>R
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* R
A\<^sub>R \<sharp>* Q'
A\<^sub>R \<sharp>* N
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* xvec
A\<^sub>R \<sharp>* K

goal (1 subgoal):
 1. (\<And>\<Psi>' \<Psi>\<^sub>R' A\<^sub>R'. \<lbrakk>\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'; extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>; A\<^sub>R' \<sharp>* \<Psi>; A\<^sub>R' \<sharp>* P; A\<^sub>R' \<sharp>* Q'; A\<^sub>R' \<sharp>* N; A\<^sub>R' \<sharp>* xvec\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule_tac C="(\<Psi>, P, Q', N, xvec)" and C'="(\<Psi>, P, Q', N, xvec)" in expandFrame) auto
[PROOF STATE]
proof (state)
this:
\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
A\<^sub>R' \<sharp>* \<Psi>
A\<^sub>R' \<sharp>* P
A\<^sub>R' \<sharp>* Q'
A\<^sub>R' \<sharp>* N
A\<^sub>R' \<sharp>* xvec

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<leadsto><Rel> Q"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<leadsto><Rel> Q
[PROOF STEP]
by(rule PSimQ')
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<leadsto><Rel> Q

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with QTrans \<open>xvec \<sharp>* \<Psi>\<close> \<open>xvec \<sharp>* \<Psi>\<^sub>R\<close> \<open>xvec \<sharp>* P\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'
xvec \<sharp>* \<Psi>
xvec \<sharp>* \<Psi>\<^sub>R
xvec \<sharp>* P
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<leadsto><Rel> Q
[PROOF STEP]
obtain P'' P' where PTrans: "\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''"
                    and P''Chain: "(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'"
                    and P'RelQ': "((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', P', Q') \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'
xvec \<sharp>* \<Psi>
xvec \<sharp>* \<Psi>\<^sub>R
xvec \<sharp>* P
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<leadsto><Rel> Q

goal (1 subgoal):
 1. (\<And>P'' P'. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''; (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'; ((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', P', Q') \<in> Rel\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(fastforce dest: weakSimE)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', P', Q') \<in> Rel

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from PTrans
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''
[PROOF STEP]
obtain P''' where PChain: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''"
                              and QimpP''': "insertAssertion (extractFrame Q) (\<Psi> \<otimes> \<Psi>\<^sub>R) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P''') (\<Psi> \<otimes> \<Psi>\<^sub>R)"
                              and P'''Trans: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto>M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''

goal (1 subgoal):
 1. (\<And>P'''. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''; insertAssertion (extractFrame Q) (\<Psi> \<otimes> \<Psi>\<^sub>R) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P''') (\<Psi> \<otimes> \<Psi>\<^sub>R); \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule weakTransitionE)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''
insertAssertion (extractFrame Q) (\<Psi> \<otimes> \<Psi>\<^sub>R) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P''') (\<Psi> \<otimes> \<Psi>\<^sub>R)
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from PChain \<open>A\<^sub>R \<sharp>* P\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''
A\<^sub>R \<sharp>* P
[PROOF STEP]
have "A\<^sub>R \<sharp>* P'''"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''
A\<^sub>R \<sharp>* P

goal (1 subgoal):
 1. A\<^sub>R \<sharp>* P'''
[PROOF STEP]
by(rule tauChainFreshChain)
[PROOF STATE]
proof (state)
this:
A\<^sub>R \<sharp>* P'''

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
obtain A\<^sub>P''' \<Psi>\<^sub>P''' where FrP''': "extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>" and "A\<^sub>P''' \<sharp>* (\<Psi>, A\<^sub>Q, \<Psi>\<^sub>Q, A\<^sub>R, \<Psi>\<^sub>R, M, N, K, R, P''', xvec)" and "distinct A\<^sub>P'''"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>A\<^sub>P''' \<Psi>\<^sub>P'''. \<lbrakk>extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>; A\<^sub>P''' \<sharp>* (\<Psi>, A\<^sub>Q, \<Psi>\<^sub>Q, A\<^sub>R, \<Psi>\<^sub>R, M, N, K, R, P''', xvec); distinct A\<^sub>P'''\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule freshFrame)
[PROOF STATE]
proof (state)
this:
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
A\<^sub>P''' \<sharp>* (\<Psi>, A\<^sub>Q, \<Psi>\<^sub>Q, A\<^sub>R, \<Psi>\<^sub>R, M, N, K, R, P''', xvec)
distinct A\<^sub>P'''

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
hence "A\<^sub>P''' \<sharp>* \<Psi>" and "A\<^sub>P''' \<sharp>* A\<^sub>Q" and "A\<^sub>P''' \<sharp>* \<Psi>\<^sub>Q" and "A\<^sub>P''' \<sharp>* M" and "A\<^sub>P''' \<sharp>* R"
      and "A\<^sub>P''' \<sharp>* N" and "A\<^sub>P''' \<sharp>* K" and "A\<^sub>P''' \<sharp>* A\<^sub>R" and "A\<^sub>P''' \<sharp>* P'''" and "A\<^sub>P''' \<sharp>* xvec" and "A\<^sub>P''' \<sharp>* \<Psi>\<^sub>R"
[PROOF STATE]
proof (prove)
using this:
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
A\<^sub>P''' \<sharp>* (\<Psi>, A\<^sub>Q, \<Psi>\<^sub>Q, A\<^sub>R, \<Psi>\<^sub>R, M, N, K, R, P''', xvec)
distinct A\<^sub>P'''

goal (1 subgoal):
 1. ((A\<^sub>P''' \<sharp>* \<Psi> &&& A\<^sub>P''' \<sharp>* A\<^sub>Q) &&& A\<^sub>P''' \<sharp>* \<Psi>\<^sub>Q &&& A\<^sub>P''' \<sharp>* M &&& A\<^sub>P''' \<sharp>* R) &&& (A\<^sub>P''' \<sharp>* N &&& A\<^sub>P''' \<sharp>* K &&& A\<^sub>P''' \<sharp>* A\<^sub>R) &&& A\<^sub>P''' \<sharp>* P''' &&& A\<^sub>P''' \<sharp>* xvec &&& A\<^sub>P''' \<sharp>* \<Psi>\<^sub>R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* A\<^sub>Q
A\<^sub>P''' \<sharp>* \<Psi>\<^sub>Q
A\<^sub>P''' \<sharp>* M
A\<^sub>P''' \<sharp>* R
A\<^sub>P''' \<sharp>* N
A\<^sub>P''' \<sharp>* K
A\<^sub>P''' \<sharp>* A\<^sub>R
A\<^sub>P''' \<sharp>* P'''
A\<^sub>P''' \<sharp>* xvec
A\<^sub>P''' \<sharp>* \<Psi>\<^sub>R

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have "\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
by(metis frameResChainPres frameNilStatEq Commutativity AssertionStatEqTrans Composition Associativity)
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with QimpP''' FrP''' FrQ \<open>A\<^sub>P''' \<sharp>* \<Psi>\<close> \<open>A\<^sub>Q \<sharp>* \<Psi>\<close> \<open>A\<^sub>P''' \<sharp>* \<Psi>\<^sub>R\<close> \<open>A\<^sub>Q \<sharp>* \<Psi>\<^sub>R\<close>
[PROOF STATE]
proof (chain)
picking this:
insertAssertion (extractFrame Q) (\<Psi> \<otimes> \<Psi>\<^sub>R) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P''') (\<Psi> \<otimes> \<Psi>\<^sub>R)
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
have "\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'''\<rangle>"
[PROOF STATE]
proof (prove)
using this:
insertAssertion (extractFrame Q) (\<Psi> \<otimes> \<Psi>\<^sub>R) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P''') (\<Psi> \<otimes> \<Psi>\<^sub>R)
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'''\<rangle>
[PROOF STEP]
using freshCompChain
[PROOF STATE]
proof (prove)
using this:
insertAssertion (extractFrame Q) (\<Psi> \<otimes> \<Psi>\<^sub>R) \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P''') (\<Psi> \<otimes> \<Psi>\<^sub>R)
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>
\<lbrakk>?xvec \<sharp>* ?\<Psi>; ?xvec \<sharp>* ?\<Psi>'\<rbrakk> \<Longrightarrow> ?xvec \<sharp>* (?\<Psi> \<otimes> ?\<Psi>')
\<lbrakk>?Xs \<sharp>* ?\<Psi>; ?Xs \<sharp>* ?\<Psi>'\<rbrakk> \<Longrightarrow> ?Xs \<sharp>* (?\<Psi> \<otimes> ?\<Psi>')

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'''\<rangle>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'''\<rangle>

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'''\<rangle>

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
have "\<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'''\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> \<Psi>\<^sub>R\<rangle>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'''\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
by(metis frameResChainPres frameNilStatEq Commutativity AssertionStatEqTrans Composition Associativity)
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'''\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'''\<rangle>
\<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'''\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
have QImpP''': "\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> \<Psi>\<^sub>R\<rangle>"
[PROOF STATE]
proof (prove)
using this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle>
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'''\<rangle>
\<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>P'''\<rangle> \<simeq>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. \<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
by(rule FrameStatEqImpCompose)
[PROOF STATE]
proof (state)
this:
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from PChain FrR \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* P\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P
[PROOF STEP]
have "\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''' \<parallel> R"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''' \<parallel> R
[PROOF STEP]
by(rule tauChainPar1)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''' \<parallel> R

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''' \<parallel> R

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from RTrans FrR P'''Trans MeqK QImpP''' FrP''' FrQ \<open>distinct A\<^sub>P'''\<close> \<open>distinct A\<^sub>R\<close> \<open>A\<^sub>P''' \<sharp>* A\<^sub>R\<close> \<open>A\<^sub>Q \<sharp>* A\<^sub>R\<close>
      \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* P'''\<close> \<open>A\<^sub>R \<sharp>* Q\<close> \<open>A\<^sub>R \<sharp>* R\<close> \<open>A\<^sub>R \<sharp>* K\<close> \<open>A\<^sub>P''' \<sharp>* \<Psi>\<close> \<open>A\<^sub>P''' \<sharp>* R\<close>
      \<open>A\<^sub>P''' \<sharp>* P'''\<close> \<open>A\<^sub>P''' \<sharp>* M\<close> \<open>A\<^sub>Q \<sharp>* R\<close>  \<open>A\<^sub>Q \<sharp>* M\<close> \<open>A\<^sub>R \<sharp>* xvec\<close> \<open>xvec \<sharp>* M\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''
\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> \<Psi>\<^sub>R\<rangle>
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
distinct A\<^sub>P'''
distinct A\<^sub>R
A\<^sub>P''' \<sharp>* A\<^sub>R
A\<^sub>Q \<sharp>* A\<^sub>R
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P'''
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* R
A\<^sub>R \<sharp>* K
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* R
A\<^sub>P''' \<sharp>* P'''
A\<^sub>P''' \<sharp>* M
A\<^sub>Q \<sharp>* R
A\<^sub>Q \<sharp>* M
A\<^sub>R \<sharp>* xvec
xvec \<sharp>* M
[PROOF STEP]
obtain K' where "\<Psi> \<otimes> \<Psi>\<^sub>P''' \<rhd> R \<longmapsto>K'\<lparr>N\<rparr> \<prec> R'" and "\<Psi> \<otimes> \<Psi>\<^sub>P''' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K'" and "A\<^sub>R \<sharp>* K'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''
\<Psi> \<otimes> \<Psi>\<^sub>Q \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K
\<langle>A\<^sub>Q, (\<Psi> \<otimes> \<Psi>\<^sub>Q) \<otimes> \<Psi>\<^sub>R\<rangle> \<hookrightarrow>\<^sub>F \<langle>A\<^sub>P''', (\<Psi> \<otimes> \<Psi>\<^sub>P''') \<otimes> \<Psi>\<^sub>R\<rangle>
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
distinct A\<^sub>P'''
distinct A\<^sub>R
A\<^sub>P''' \<sharp>* A\<^sub>R
A\<^sub>Q \<sharp>* A\<^sub>R
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P'''
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* R
A\<^sub>R \<sharp>* K
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* R
A\<^sub>P''' \<sharp>* P'''
A\<^sub>P''' \<sharp>* M
A\<^sub>Q \<sharp>* R
A\<^sub>Q \<sharp>* M
A\<^sub>R \<sharp>* xvec
xvec \<sharp>* M

goal (1 subgoal):
 1. (\<And>K'. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P''' \<rhd> R \<longmapsto> K'\<lparr>N\<rparr> \<prec> R'; \<Psi> \<otimes> \<Psi>\<^sub>P''' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K'; A\<^sub>R \<sharp>* K'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule_tac comm2Aux) (assumption | simp)+
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<rhd> R \<longmapsto> K'\<lparr>N\<rparr> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K'
A\<^sub>R \<sharp>* K'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with P'''Trans FrP'''
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<rhd> R \<longmapsto> K'\<lparr>N\<rparr> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K'
A\<^sub>R \<sharp>* K'
[PROOF STEP]
have "\<Psi> \<rhd> P''' \<parallel> R \<longmapsto>\<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>(P'' \<parallel> R')"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<rhd> R \<longmapsto> K'\<lparr>N\<rparr> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K'
A\<^sub>R \<sharp>* K'

goal (1 subgoal):
 1. \<Psi> \<rhd> P''' \<parallel> R \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R'
[PROOF STEP]
using FrR \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* P'''\<close> \<open>A\<^sub>R \<sharp>* R\<close>
      \<open>xvec \<sharp>* R\<close> \<open>A\<^sub>P''' \<sharp>* \<Psi>\<close> \<open>A\<^sub>P''' \<sharp>* P'''\<close> \<open>A\<^sub>P''' \<sharp>* R\<close> \<open>A\<^sub>P''' \<sharp>* M\<close> \<open>A\<^sub>R \<sharp>* K'\<close> \<open>A\<^sub>P''' \<sharp>* A\<^sub>R\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''
extractFrame P''' = \<langle>A\<^sub>P''', \<Psi>\<^sub>P'''\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<rhd> R \<longmapsto> K'\<lparr>N\<rparr> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>P''' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K'
A\<^sub>R \<sharp>* K'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* P'''
A\<^sub>R \<sharp>* R
xvec \<sharp>* R
A\<^sub>P''' \<sharp>* \<Psi>
A\<^sub>P''' \<sharp>* P'''
A\<^sub>P''' \<sharp>* R
A\<^sub>P''' \<sharp>* M
A\<^sub>R \<sharp>* K'
A\<^sub>P''' \<sharp>* A\<^sub>R

goal (1 subgoal):
 1. \<Psi> \<rhd> P''' \<parallel> R \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R'
[PROOF STEP]
by(rule_tac Comm2)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P''' \<parallel> R \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P''' \<parallel> R \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from P'''Trans \<open>A\<^sub>R \<sharp>* P'''\<close> \<open>A\<^sub>R \<sharp>* xvec\<close> \<open>xvec \<sharp>* M\<close> \<open>distinct xvec\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''
A\<^sub>R \<sharp>* P'''
A\<^sub>R \<sharp>* xvec
xvec \<sharp>* M
distinct xvec
[PROOF STEP]
have "A\<^sub>R \<sharp>* P''"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''
A\<^sub>R \<sharp>* P'''
A\<^sub>R \<sharp>* xvec
xvec \<sharp>* M
distinct xvec

goal (1 subgoal):
 1. A\<^sub>R \<sharp>* P''
[PROOF STEP]
by(rule_tac outputFreshChainDerivative) auto
[PROOF STATE]
proof (state)
this:
A\<^sub>R \<sharp>* P''

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from PChain \<open>A\<^sub>R' \<sharp>* P\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''
A\<^sub>R' \<sharp>* P
[PROOF STEP]
have "A\<^sub>R' \<sharp>* P'''"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'''
A\<^sub>R' \<sharp>* P

goal (1 subgoal):
 1. A\<^sub>R' \<sharp>* P'''
[PROOF STEP]
by(rule tauChainFreshChain)
[PROOF STATE]
proof (state)
this:
A\<^sub>R' \<sharp>* P'''

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with P'''Trans \<open>xvec \<sharp>* M\<close> \<open>distinct xvec\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''
xvec \<sharp>* M
distinct xvec
A\<^sub>R' \<sharp>* P'''
[PROOF STEP]
have "A\<^sub>R' \<sharp>* P''"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''
xvec \<sharp>* M
distinct xvec
A\<^sub>R' \<sharp>* P'''

goal (1 subgoal):
 1. A\<^sub>R' \<sharp>* P''
[PROOF STEP]
using \<open>A\<^sub>R' \<sharp>* xvec\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P''' \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P''
xvec \<sharp>* M
distinct xvec
A\<^sub>R' \<sharp>* P'''
A\<^sub>R' \<sharp>* xvec

goal (1 subgoal):
 1. A\<^sub>R' \<sharp>* P''
[PROOF STEP]
by(rule_tac outputFreshChainDerivative) auto
[PROOF STATE]
proof (state)
this:
A\<^sub>R' \<sharp>* P''

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with P''Chain
[PROOF STATE]
proof (chain)
picking this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
A\<^sub>R' \<sharp>* P''
[PROOF STEP]
have "A\<^sub>R' \<sharp>* P'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
A\<^sub>R' \<sharp>* P''

goal (1 subgoal):
 1. A\<^sub>R' \<sharp>* P'
[PROOF STEP]
by(rule tauChainFreshChain)
[PROOF STATE]
proof (state)
this:
A\<^sub>R' \<sharp>* P'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from \<open>\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'
[PROOF STEP]
have "(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi> \<otimes> \<Psi>\<^sub>R'"
[PROOF STATE]
proof (prove)
using this:
\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi> \<otimes> \<Psi>\<^sub>R'
[PROOF STEP]
by(metis Associativity AssertionStatEqTrans AssertionStatEqSym compositionSym)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi> \<otimes> \<Psi>\<^sub>R'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with P''Chain
[PROOF STATE]
proof (chain)
picking this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi> \<otimes> \<Psi>\<^sub>R'
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi> \<otimes> \<Psi>\<^sub>R'

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
[PROOF STEP]
by(rule tauChainStatEq)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
hence "\<Psi> \<rhd> P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'

goal (1 subgoal):
 1. \<Psi> \<rhd> P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R'
[PROOF STEP]
using FrR' \<open>A\<^sub>R' \<sharp>* \<Psi>\<close> \<open>A\<^sub>R' \<sharp>* P''\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P'' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P'
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
A\<^sub>R' \<sharp>* \<Psi>
A\<^sub>R' \<sharp>* P''

goal (1 subgoal):
 1. \<Psi> \<rhd> P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R'
[PROOF STEP]
by(rule tauChainPar1)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
hence "\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>(P'' \<parallel> R') \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>(P' \<parallel> R')"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R'

goal (1 subgoal):
 1. \<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> P' \<parallel> R'
xvec \<sharp>* \<Psi>

goal (1 subgoal):
 1. \<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'
[PROOF STEP]
by(rule tauChainResChainPres)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''' \<parallel> R
\<Psi> \<rhd> P''' \<parallel> R \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R'
\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'
[PROOF STEP]
have "\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>(P' \<parallel> R')"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''' \<parallel> R
\<Psi> \<rhd> P''' \<parallel> R \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R'
\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>P'' \<parallel> R' \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'

goal (1 subgoal):
 1. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'
[PROOF STEP]
by(drule_tac tauActTauStepChain) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
from P'RelQ' \<open>\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'\<close>
[PROOF STATE]
proof (chain)
picking this:
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', P', Q') \<in> Rel
\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'
[PROOF STEP]
have "(\<Psi> \<otimes> \<Psi>\<^sub>R', P', Q') \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', P', Q') \<in> Rel
\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R', P', Q') \<in> Rel
[PROOF STEP]
by(metis C3 Associativity compositionSym)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R', P', Q') \<in> Rel

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with FrR' \<open>A\<^sub>R' \<sharp>* P'\<close> \<open>A\<^sub>R' \<sharp>* Q'\<close> \<open>A\<^sub>R' \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
A\<^sub>R' \<sharp>* P'
A\<^sub>R' \<sharp>* Q'
A\<^sub>R' \<sharp>* \<Psi>
(\<Psi> \<otimes> \<Psi>\<^sub>R', P', Q') \<in> Rel
[PROOF STEP]
have "(\<Psi>, P' \<parallel> R', Q' \<parallel> R') \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
A\<^sub>R' \<sharp>* P'
A\<^sub>R' \<sharp>* Q'
A\<^sub>R' \<sharp>* \<Psi>
(\<Psi> \<otimes> \<Psi>\<^sub>R', P', Q') \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, P' \<parallel> R', Q' \<parallel> R') \<in> Rel'
[PROOF STEP]
by(rule_tac C1)
[PROOF STATE]
proof (state)
this:
(\<Psi>, P' \<parallel> R', Q' \<parallel> R') \<in> Rel'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
with \<open>xvec \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* \<Psi>
(\<Psi>, P' \<parallel> R', Q' \<parallel> R') \<in> Rel'
[PROOF STEP]
have "(\<Psi>, \<lparr>\<nu>*xvec\<rparr>(P' \<parallel> R'), \<lparr>\<nu>*xvec\<rparr>(Q' \<parallel> R')) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* \<Psi>
(\<Psi>, P' \<parallel> R', Q' \<parallel> R') \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R', \<lparr>\<nu>*xvec\<rparr>Q' \<parallel> R') \<in> Rel'
[PROOF STEP]
by(rule_tac C2)
[PROOF STATE]
proof (state)
this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R', \<lparr>\<nu>*xvec\<rparr>Q' \<parallel> R') \<in> Rel'

goal (1 subgoal):
 1. \<And>\<Psi>\<^sub>Q M xvec N P' A\<^sub>P \<Psi>\<^sub>P K Q' A\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> Q \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame Q = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> R \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame R = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; \<Psi> \<otimes> \<Psi>\<^sub>P \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K; distinct xvec; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* \<Psi>\<^sub>Q; A\<^sub>P \<sharp>* Q; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* Q; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* Q; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* R; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel'
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R', \<lparr>\<nu>*xvec\<rparr>Q' \<parallel> R') \<in> Rel'
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R'
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> R', \<lparr>\<nu>*xvec\<rparr>Q' \<parallel> R') \<in> Rel'

goal (1 subgoal):
 1. \<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', \<lparr>\<nu>*xvec\<rparr>Q' \<parallel> R') \<in> Rel'
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', \<lparr>\<nu>*xvec\<rparr>Q' \<parallel> R') \<in> Rel'

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<exists>P'. \<Psi> \<rhd> P \<parallel> R \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', QR) \<in> Rel'

goal:
No subgoals!
[PROOF STEP]
qed